我正在尝试将图像选择器保存到 Firebase。我阅读了许多关于 Google 云存储的教程以及官方文档。他们都说要做这样的事情:
import { getStorage, ref } from "firebase/storage";
这样你就可以:
const storage = getStorage()
然后
const ref = firebase.storage().ref();
无论我做什么,除了这个错误之外我什么也得不到:
TypeError: (0, _storage.getStorage) 不是一个函数。 (在“(0,_storage.getStorage)()”中,“(0,_storage.getStorage)”未定义)
我可以在我的node_modules 中看到firebase/storage。我通过控制台记录(firebase)以确保它是一件事。我尝试了一百万种不同的导入。我安装了其他 firebase 依赖项,例如 @react-native-firebase 来使用它们的存储功能,但没有任何效果。 Firebase 的其他一切对我来说都很好。
我不知道问题是什么。我很乐意用另一种方式来做,但一切都说要使用 storage() 方法。难道我做错了什么?除了使用存储方式将图片上传到云端之外,还有其他选择吗?
import firebase from "firebase/app";
import "firebase/storage";
为我工作 确保您使用 firebase 版本 < 9
const handleUpload = async (pic) => {
try {
const response = await fetch(pic)
const blob = await response.blob()
const storageRef = firebase.storage().ref();
// storageRef.put(blob).then((snapshot) => {
// console.log("Uploaded!");
// });
let ref = storageRef.child("/images/" + decoded.id)
return ref.put(blob)
} catch (error) {
console.log(error)
}
}
检查您应用中的 Firebase 版本。
Firebase 版本 8 使用
firebase.storage()
方法。
为了使用
getStorage
,您需要使用 Firebase v9.x
请参阅本指南了解如何升级: 从版本 8 升级到模块化 Web SDK
对于版本 8,请确保单击 Firebase 文档中的 Web 版本 8 选项卡: https://firebase.google.com/docs/storage/web/upload-files
这是对我有用的代码片段(Firebase V8)。
我的 Firebase 初始化文件:FirebaseInitialize.js
import firebase from "firebase/app";
import "firebase/storage";
import { firebaseConfig } from "./firebaseConfig";
firebase.initializeApp(firebaseConfig);
export { firebase };
我的 Firebase 配置文件
export const firebaseConfig = {
apiKey: "YOUR-API-KEY",
authDomain: "YOUR-DOMAIN.firebaseapp.com",
databaseURL: "https://YOUR-DOMAIN.firebaseio.com",
projectId: "YOUR-PROJECTID",
storageBucket: "YOUR-SOTRAGEBUCKET.appspot.com",
appId: "APP-ID",
};
当我需要使用存储时,我就是这样做的:
import { firebase } from "./FirebaseInitialize";
const storageRef = firebase.storage().ref();
storageRef.put(file).then((snapshot) => {
console.log("Uploaded!");
});
希望这有帮助。
**
**
使用此官方文档来使用 firebase 的存储 这是官网链接,了解如何从firebase正确实现存储或存储桶
请点击此链接
或