0

我正在尝试将文件上传到 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
            });
        });
    }    
};

我知道图像不是无效的,并且 Firebase 控制台中的存储规则设置为公开。此外,该文件夹已经存在,以防万一。

handleChangeImage = (e) => {
    this.setState({
      image: e.target.files[0]
    });
  }


<input type="file" id="image" onChange={this.handleChangeImage}/>

我不知道我做错了什么。

4

1 回答 1

3

我假设您正在使用 react-redux-firebase。

您可能忘记导入firebase/storage. 如果您打算在使用 react-redux-firebase 时使用 Firebase 存储,则需要显式导入库的存储部分:

import 'firebase/storage'
于 2019-08-17T18:44:03.783 回答