在 Firebase / React 上创建存储引用时出现“TypeError: db._checkNotDeleted is not a function”

Qui*_*ice 7 javascript file firebase reactjs google-cloud-platform

我正在 React 上创建一个应用程序,它使用 Firebase 作为后端数据,并希望能够上传图片。当尝试通过 firebase 获取存储引用时,出现以下错误:

在此输入图像描述

每次我尝试获取对存储的引用时,都会收到此错误。我还在 firebase 上使用实时数据库,但我认为这根本不会干扰。下面是调用的代码:

import database, { auth, provider, storage } from '../../components/utils/firebase.js';
import { uploadBytes } from '@firebase/storage';

...
        handleSubmit(e) {
        e.preventDefault();

        const file = e.target[0].files[0];
        console.log("File: ", file);
        
        if (!file) {
            console.log("No file!");
          } else {
            const storageRef = ref(storage, `images/${file.name}`);
            uploadBytes(storageRef, file);
            console.log("Uploaded file!");
            console.log("File: " + file);
          }
        
    }
Run Code Online (Sandbox Code Playgroud)

firebase.js(我的配置文件):

import { initializeApp } from 'firebase/app';
import { getDatabase } from 'firebase/database';
import  { getAuth, GoogleAuthProvider } from 'firebase/auth';
import { getStorage } from 'firebase/storage';

const firebaseConfig = {
  apiKey: process.env.REACT_APP_APIKEY,
  authDomain: process.env.REACT_APP_AUTHDOMAIN,
  databaseURL: process.env.REACT_APP_DATABASEURL,
  projectId: process.env.REACT_APP_PROJECTID,
  storageBucket: process.env.REACT_APP_STORAGEBUCKET,
  messagingSenderId: process.env.REACT_APP_MESSAGINGSENDERID,
  appId: process.env.REACT_APP_APPID,
  measurementId: process.env.REACT_APP_MEASUREMENTID
};

// Initialize Firebase
const app = initializeApp(firebaseConfig);
const database = getDatabase(app);

export const storage = getStorage(app);
export default database;
export const auth = getAuth(app);

export const provider = new GoogleAuthProvider();
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么会发生这种情况?谢谢你!

Qui*_*ice 13

我在观看某人设置存储桶的视频时发现了这个问题。

本质上,因为我已经在使用ref实时数据库,并从实时数据库文件夹导入该命令,所以我的存储引用实际上是实时数据库引用。为了解决这个问题,我导入了存储ref函数,如下所示:

import { ref as sRef } from 'firebase/storage';

然后用sRef代替ref.

希望这对遇到同样问题的人有所帮助!追捕过程令人沮丧