更改Firebase中存储元数据的值

时间:2017-05-04 11:57:36

标签: ios swift firebase firebase-realtime-database firebase-storage

在我的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?如果是这样,我将如何实现这一目标?谢谢!

1 个答案:

答案 0 :(得分:1)

您无法保留相同的下载网址。编辑照片时,您需要将数据库中“PFPURL”的值更新为新URL。