【问题标题】:Firebase v9 uploading image shows only 9 bytesFirebase v9 上传图片仅显示 9 个字节
【发布时间】:2021-12-30 04:06:59
【问题描述】:

我使用 react native 和 firebase (v9) 将图像上传到 firebase。在 firebase 存储中,文件已上传,但大小仅为 9 个字节,因此无法正常打开。我不确定如何解决这个问题:S

const uploadFiles = (file, name, storeKey) => {
    if(!file){
        console.log('no file exists')
        return;
    }
    const exe = file.substring(file.lastIndexOf('.'));
    const fileName = name + exe;
    const storageRef = ref(storage, `/files/${fileName}`);
    const uploadTask = uploadBytesResumable(storageRef, file);
    uploadTask.on('state_changed', null,
        (error) => {
            alert(error);
        },
        () => {
            getDownloadURL(uploadTask.snapshot.ref)
            .then((URL) => {
                setDoc(doc(db, 'Store', storeKey, 'coffeeDB', name), {postImage: URL}, {merge: true});
                console.log('url registered')
            });
        }
    )
}

【问题讨论】:

    标签: javascript firebase react-native firebase-storage


    【解决方案1】:

    鉴于您正在调用file.substring(...),看来file 是一个文件名。您不能仅通过传递文件名称来上传文件,因为这会带来安全风险。相反,您需要传递 Blob | Uint8Array | ArrayBuffer,如 herehere 所示,通常通过传递您从中获取文件名的 File 引用。

    【讨论】:

    • 谢谢你!现在我必须工作 blob:D
    猜你喜欢
    • 2021-12-02
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多