Firebase v9 上传图片只显示 9 个字节

Firebase v9 uploading image shows only 9 bytes

我正在使用 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')
            });
        }
    )
}

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