在 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'