在 React redux firebase 中上传文件
Uploading a file in React redux firebase
我正在尝试将文件上传到 firebase 存储,但我一直收到此错误:
Error: Firebase storage is required to upload files
at Object.uploadFile (storage.js:63)
at Object.uploadFile (createFirebaseInstance.js:139)
at classActions.js:11
这是调用:
export const createClass = (_class) => {
return (dispatch, getState, {getFirebase, getFirestore}) => {
// Call to DB
const firestore = getFirestore();
const firebase = getFirebase();
firestore.collection('classes').add({
..._class,
createdAt: new Date()
}).then(() => {
console.log(_class.image);
firebase.uploadFile('imgs', _class.image);
}).then ( () => {
dispatch({
type: 'ADD_CLASS',
class: _class
})
}).catch( (err) => {
dispatch({
type: 'ADD_CLASS_ERROR',
error: err
});
});
}
};
我知道图片不是void,firebase控制台的存储规则设置为public。另外,该文件夹已经存在,以防万一。
handleChangeImage = (e) => {
this.setState({
image: e.target.files[0]
});
}
<input type="file" id="image" onChange={this.handleChangeImage}/>
我不知道我做错了什么。
我假设你正在使用 react-redux-firebase。
您可能忘记导入 firebase/storage
。如果在使用react-redux-firebase时打算使用Firebase存储,需要显式导入库的存储部分:
import 'firebase/storage'
我正在尝试将文件上传到 firebase 存储,但我一直收到此错误:
Error: Firebase storage is required to upload files
at Object.uploadFile (storage.js:63)
at Object.uploadFile (createFirebaseInstance.js:139)
at classActions.js:11
这是调用:
export const createClass = (_class) => {
return (dispatch, getState, {getFirebase, getFirestore}) => {
// Call to DB
const firestore = getFirestore();
const firebase = getFirebase();
firestore.collection('classes').add({
..._class,
createdAt: new Date()
}).then(() => {
console.log(_class.image);
firebase.uploadFile('imgs', _class.image);
}).then ( () => {
dispatch({
type: 'ADD_CLASS',
class: _class
})
}).catch( (err) => {
dispatch({
type: 'ADD_CLASS_ERROR',
error: err
});
});
}
};
我知道图片不是void,firebase控制台的存储规则设置为public。另外,该文件夹已经存在,以防万一。
handleChangeImage = (e) => {
this.setState({
image: e.target.files[0]
});
}
<input type="file" id="image" onChange={this.handleChangeImage}/>
我不知道我做错了什么。
我假设你正在使用 react-redux-firebase。
您可能忘记导入 firebase/storage
。如果在使用react-redux-firebase时打算使用Firebase存储,需要显式导入库的存储部分:
import 'firebase/storage'