【发布时间】:2021-12-31 06:27:31
【问题描述】:
我正在尝试创建一个可将文件上传到 Firebase 存储的 Vue Composable。
为此,我使用模块化 Firebase 9 版本。
但是我当前的代码没有上传任何东西,而是返回这个错误:FirebaseError: Firebase Storage: An unknown error occurred, please check the error payload for server response. (storage/unknown)
由于这个错误已经来自我的console.log("ERROR", err);,我不确定在哪里寻找解决方案。
我的代码是使用 TypeScript 实现的,以防万一。
import { projectStorage } from "@/firebase/config";
import { ref, watchEffect } from "vue";
import {
ref as storageRef,
uploadBytesResumable,
UploadTaskSnapshot,
UploadTask,
getDownloadURL,
StorageError,
} from "firebase/storage";
const useStorage: any = (file: File) => {
const error = ref<StorageError | null>(null);
const url = ref<string | null>(null);
const progress = ref<number | null>(null);
watchEffect(() => {
// references
const storageReference = storageRef(projectStorage, "images/" + file.name);
// upload file
const uploadTask: UploadTask = uploadBytesResumable(storageReference, file);
// update progess bar as file uploads
uploadTask.on(
"state_changed",
(snapshot: UploadTaskSnapshot) => {
console.log("SNAPSHOT", snapshot);
},
(err) => {
error.value = err;
console.log("ERROR", err);
},
async () => {
// get download URL & make firestore doc
const downloadUrl = await getDownloadURL(storageReference);
url.value = downloadUrl;
console.log("DOWNLOADURL", downloadUrl);
}
);
});
return { progress, url, error };
};
export default useStorage;
【问题讨论】:
-
firebaser here 如果这是您在过去几天创建的项目,您可能受到我们项目创建中的错误的影响。如果是这样,则该问题已得到解决,因此新项目将不再受到影响。要修复您现有的项目,请查看此处的步骤:stackoverflow.com/a/70060240
标签: typescript firebase vue.js firebase-storage