在 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.