我的程序中有小错误。
我的应用中有火碱存储。我想让用户将图像上传到存储。
问题是当用户上传图像然后尝试上传另一张图像时。 程序做什么 它会覆盖之前上传的图像。
我想要的是避免在用户想要上传另一张图像时"覆盖"。 并将两个图像保存在不同的文件中
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);
})
})
}