我试着用swift把个人资料图片上传到我的firebase存储器,问题是当用户上传一张新的个人资料图片时,它不会覆盖第一张,在我的应用程序上,它仍然显示旧的图片,尽管在数据库上,它显示新的图片已经上传。
这就是我加载图像的方式
let storage = Storage.storage()
let storageRef = storage.reference()
let ref = storageRef.child("\(UserModel.docId)-ProfilePicture")
// check if file exists or not
ref.downloadURL { newUrl, error in
if let error = error {
print("Image does not exist")
self.profileImage.image = UIImage(systemName: "person.circle.fill")
} else {
print("loaded database image")
self.profileImage.sd_setImage(with: ref)
}
}
这是我上传图像的方式。
let storage = Storage.storage()
let storageRef = storage.reference()
let photoRef = storageRef.child("\(UserModel.docId)-ProfilePicture")
let data = Data()
let uploadTask = photoRef.putFile(from: fileURL,metadata: nil) {(metadata,err) in
guard let metadata = metadata else {
print("error uploading to database")
return
}
print("Photo uploaded")
}
没有错误。
1条答案
按热度按时间ocebsuys1#
我将使用以下
UIImage
方法将UIImage
转换为Data
:您可以直接在映像上调用该函数以获取
Data
,然后您可以使用该函数上传到存储。