在 Firebase 中更改存储元数据中的值
Changing values in storage metadata in Firebase
在我的 iOS 应用中,用户可以上传个人资料图片,这些图片会上传到 Firebase 中的存储空间。我已将个人资料图片的 URL 保存到数据库中,因此我可以使用以下代码知道哪些 URL 对应于哪些用户:
let storageRef = FIRStorage.storage().reference()
let fileRef = storageRef.child("pages/").child(UUID().uuidString + ".jpg")
_ = fileRef.put(UIImageJPEGRepresentation(image, 0.75)!, metadata: nil) { (metadata, error) in
if let error = error {
SCLAlertView().showError("Error", subTitle: error.localizedDescription)
return
} else {
let downloadURL = metadata!.downloadURL()
let dictionary: [String: Any] = ["UserID": uid, "PageName": self.pageTitle.text!, "PFPURL": downloadURL!, "Tags": self.tags, "Likes": [uid]]
let reference = FIRDatabase.database().reference().child("Pages").childByAutoId()
reference.setValue(dictionary, withCompletionBlock: { (error, ref) in
if let error = error {
SCLAlertView().showError("Error", subTitle: error.localizedDescription)
return
}
self.performSegue(withIdentifier: "setupComplete", sender: self)
})
}
}
不过,我希望这些图片可以编辑。有没有可能我可以替换 storageRef 中的图像但仍然保持不变 URL?如果是这样,我将如何做到这一点?谢谢!
您不能保持相同的下载 URL。编辑照片时,您需要将数据库中 "PFPURL" 的值更新为新的 URL.
在我的 iOS 应用中,用户可以上传个人资料图片,这些图片会上传到 Firebase 中的存储空间。我已将个人资料图片的 URL 保存到数据库中,因此我可以使用以下代码知道哪些 URL 对应于哪些用户:
let storageRef = FIRStorage.storage().reference()
let fileRef = storageRef.child("pages/").child(UUID().uuidString + ".jpg")
_ = fileRef.put(UIImageJPEGRepresentation(image, 0.75)!, metadata: nil) { (metadata, error) in
if let error = error {
SCLAlertView().showError("Error", subTitle: error.localizedDescription)
return
} else {
let downloadURL = metadata!.downloadURL()
let dictionary: [String: Any] = ["UserID": uid, "PageName": self.pageTitle.text!, "PFPURL": downloadURL!, "Tags": self.tags, "Likes": [uid]]
let reference = FIRDatabase.database().reference().child("Pages").childByAutoId()
reference.setValue(dictionary, withCompletionBlock: { (error, ref) in
if let error = error {
SCLAlertView().showError("Error", subTitle: error.localizedDescription)
return
}
self.performSegue(withIdentifier: "setupComplete", sender: self)
})
}
}
不过,我希望这些图片可以编辑。有没有可能我可以替换 storageRef 中的图像但仍然保持不变 URL?如果是这样,我将如何做到这一点?谢谢!
您不能保持相同的下载 URL。编辑照片时,您需要将数据库中 "PFPURL" 的值更新为新的 URL.