Xhark
Xhark

Reputation: 841

Uploading a file in React redux firebase

I'm trying to upload a file to firebase storage but i keep getting this error:

Error: Firebase storage is required to upload files
    at Object.uploadFile (storage.js:63)
    at Object.uploadFile (createFirebaseInstance.js:139)
    at classActions.js:11

This is the call:

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
            });
        });
    }    
};

I know that the image is not void,and the rules for storage in the firebase console are set to public. Also, the folder already exists, just in case.

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


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

I can't figure out what I could be doing wrong.

Upvotes: 0

Views: 383

Answers (1)

Pierre V.
Pierre V.

Reputation: 1625

I assume you are using react-redux-firebase.

You probably have forgotten to import firebase/storage. If you intend to use Firebase storage when using react-redux-firebase, you need to import the storage part of the library explicitly:

import 'firebase/storage'

Upvotes: 3

Related Questions