Firebase 存储覆盖文件



我的程序中有小错误。

我的应用中有火碱存储。我想让用户将图像上传到存储。

问题是当用户上传图像然后尝试上传另一张图像时。 程序做什么 它会覆盖之前上传的图像。

我想要的是避免在用户想要上传另一张图像时"覆盖"。 并将两个图像保存在不同的文件中

let currentUser = Auth.auth().currentUser
    let StorageRefrenece = Storage.storage().reference()
    let posterImageRef =
        StorageRefrenece.child("posters").child(currentUser!.uid).child("posterOne.jpg")

谢谢

发生这种情况是因为您使用相同的名称存储它们。在Firebase存储中,您是负责决定文件名的人,没有" .childByAutoId() "。

如果你想有不同的文件,你可以创建随机值来命名它们,这在这里得到了很好的解释:如何在 Apple 的 Swift 语言中生成随机数?

最终代码应如下所示:

StorageRefrenece.child("posters").child(currentUser!.uid).child(<#Any Random Value#>)
  import { v4 as uuid } from "uuid";
  const unId = uuid();
  const handleSubmit = async () => {

  const imageRef = ref(storage, unId);
    uploadBytes(imageRef, image)
      .then(() => {
        getDownloadURL(imageRef)
          .then((url) => {
            console.log("Url received from firebase: ",url)
            setUrl(url);
           })
        })
}

相关内容

最新更新