上传到 firebase 错误“.storage.ref 不是一个函数”
Upload to firebase error ".storage.ref is not a function"
在我的 index.js 文件中:
export function postArticleAPI(payload) {
return(dispatch) => {
const upload = storage
.ref(`images/${payload.image.name}`)
.put(payload.image);
upload.on("state_changed", (snapshot) => {
const progress = (
(snapshot.BytesTransferred / snapshot.totalBytes) * 100);
console.log(`Progress: ${progress}%`);
if(snapshot.state === "RUNNING") {
console.log(`Progress: ${progress}%`);
}
},
(error) => console.log(error.code),
async() => {
const downloadURL = await upload.snapshot.ref.getDownloadURL();
db.collection("articles").add({
...
});
});
}
};
}
我查看了 firebase 提供的 docs,但我不确定如何实现它。当我 运行 上面的代码时,我得到“TypeError: firebase__WEBPACK_IMPORTED_MODULE_0_.storage.ref is not a function”错误。
我弄乱了代码,还遇到了其他错误,例如:“...storage.put 不是一个函数,”我遇到了上传错误,以及 db.collection错误。
这是我的 firebase.js:
import { initializeApp } from 'firebase/app';
import { getAuth, GoogleAuthProvider } from 'firebase/auth';
import { getStorage } from "firebase/storage";
import { getFirestore } from "firebase/firestore";
const firebaseConfig = {
...
}
const firebaseApp = initializeApp(firebaseConfig);
const db = getFirestore(firebaseApp);
const auth = getAuth();
const provider = new GoogleAuthProvider();
const storage = getStorage(firebaseApp);
export { auth, provider, storage };
export default db;
如有任何帮助,我们将不胜感激(这是我的第一个 post,所以如果我需要添加任何其他内容,请告诉我)。谢谢!
由于您使用 v9 语法导入顶级函数,因此不再有 storage.ref()
方法。相反,如 getting a reference and uploading files 上的文档所示,您可以执行以下操作:
const ref = ref(storage, `images/${payload.image.name}`)
const upload = uploadBytes(ref, payload.image);
在我的 index.js 文件中:
export function postArticleAPI(payload) {
return(dispatch) => {
const upload = storage
.ref(`images/${payload.image.name}`)
.put(payload.image);
upload.on("state_changed", (snapshot) => {
const progress = (
(snapshot.BytesTransferred / snapshot.totalBytes) * 100);
console.log(`Progress: ${progress}%`);
if(snapshot.state === "RUNNING") {
console.log(`Progress: ${progress}%`);
}
},
(error) => console.log(error.code),
async() => {
const downloadURL = await upload.snapshot.ref.getDownloadURL();
db.collection("articles").add({
...
});
});
}
};
}
我查看了 firebase 提供的 docs,但我不确定如何实现它。当我 运行 上面的代码时,我得到“TypeError: firebase__WEBPACK_IMPORTED_MODULE_0_.storage.ref is not a function”错误。
我弄乱了代码,还遇到了其他错误,例如:“...storage.put 不是一个函数,”我遇到了上传错误,以及 db.collection错误。
这是我的 firebase.js:
import { initializeApp } from 'firebase/app';
import { getAuth, GoogleAuthProvider } from 'firebase/auth';
import { getStorage } from "firebase/storage";
import { getFirestore } from "firebase/firestore";
const firebaseConfig = {
...
}
const firebaseApp = initializeApp(firebaseConfig);
const db = getFirestore(firebaseApp);
const auth = getAuth();
const provider = new GoogleAuthProvider();
const storage = getStorage(firebaseApp);
export { auth, provider, storage };
export default db;
如有任何帮助,我们将不胜感激(这是我的第一个 post,所以如果我需要添加任何其他内容,请告诉我)。谢谢!
由于您使用 v9 语法导入顶级函数,因此不再有 storage.ref()
方法。相反,如 getting a reference and uploading files 上的文档所示,您可以执行以下操作:
const ref = ref(storage, `images/${payload.image.name}`)
const upload = uploadBytes(ref, payload.image);