Firebase Storage:要使用 ref(service, url),第一个参数必须是 Storage 实例

Firebase Storage: To use ref(service, url), the first argument must be a Storage instance

我无法从 Firebase 存储中检索图像。我目前正在将 Firebase SDK 集成到我的 expo react native 项目中。我使用的 Firebase 的 sdk 版本是 9.6.1。 我可以成功使用 Firebase AUTH 和 firebase firestore(检索和更新数据)。

当我尝试使用 firebase 的存储时,出现了这个奇怪的错误:

[Unhandled promise rejection: FirebaseError: Firebase Storage: To use ref(service, url), the first argument must be a Storage instance. (storage/invalid-argument)]

这是我初始化我的 firebase 应用程序的地方:

import { initializeApp } from "firebase/app";

export const firebaseConfig = {
  apiKey: "apices",
  authDomain: "xxxxx.firebaseapp.com",
  databaseURL:
    "https://xxxxx-default-rtdb.europe-west1.firebasedatabase.app",
  projectId: "xxxxx",
  storageBucket: "xxxxx.appspot.com",
  messagingSenderId: "333333333",
  appId: "yyyyyyyyyyy",
  measurementId: "fffffff",
};

const app = initializeApp(firebaseConfig);

export { app };

然后做一个简单的:

const imageRef = ref(getStorage(), imageUrl);

给我一个错误。是的,imageUrl 是有效的 gs://projectid.appspot.com/folder1/image1.jpg url.

我是不是弄错了什么?

您能否尝试在初始化 Firebase 的同一个文件中初始化存储,然后在需要的地方导入它? getStorage() 当前可能在 Firebase 初始化之前被调用:

const app = initializeApp(firebaseConfig);
const storage = getStorage(app)l

export { app, storage };
// import { storage } from "../firebase_file.js"

const imageRef = ref(storage, imageUrl);