首页 > 解决方案 > HOC 反应 redux firebase。(错误:上传文件需要 Firebase 存储)

问题描述

错误需要firebase存储可能是我在向uploadFile()提供参数时出错了。如果您看到任何代码,请建议更正:

export const addCategory = category => {
  return (dispatch, getState, { getFirestore, getFirebase }) => {
    const firebase = getFirebase();
    const firestore = getFirestore();

    let reader = new FileReader();
    reader.readAsDataURL(category.imageFile);

    const imageExtension = category.imageFile.name.split('.')[
      category.imageFile.name.split('.').length - 1
    ];
    var imageFileName = `${Math.round(
      Math.random() * 100000000000
    )}.${imageExtension}`;

    reader.onload = e => {
      const storagePath = "https://firebasestorage.googleapis.com/v0/b/grocapp-f4eb9.appspot.com/o/";
      const dbPath = 'test';
      const fileMetadata = { contentType: 'image/jpeg' };

      firebase
        .uploadFile(storagePath, e.target.result, dbPath, { metadata: fileMetadata })
        .then(() => {
          console.log('File uploaded successfully');
        });
    };
  };
};

浏览器中的错误代码:

Error: Firebase storage is required to upload files
  19 |      const dbPath = 'test';
  20 |      const fileMetadata = { contentType: 'image/jpeg' };
  21 | 
> 22 |      firebase
  23 |^       .uploadFile(storagePath, e.target.result, dbPath, { metadata: fileMetadata })
  24 |        .then(() => {
  25 |          console.log('File uploaded successfully');

标签: reactjsfirebasefirebase-storagereact-redux-firebase

解决方案


我认为@firebase/storage如果您还没有安装并导入它,您应该安装

它在uploadFile方法的开始被检查

import "firebase/storage";

推荐阅读