如何更新存储节点Firebase Swift

时间:2018-08-31 04:53:45

标签: swift firebase storage

我希望用新文件数据更新用户uid(只有一个数据文件)下的FB Storage节点。使用.putData只会将另一个文件添加到该节点中,我不确定如何使用.update调用,因为它使用元数据,而且我只知道如何创建uploadData。

@objc func doneTapped() {

    guard let uid = Auth.auth().currentUser?.uid else {return}
    let filename = NSUUID().uuidString
    let storageRef = Storage.storage().reference().child("profile_images").child(uid)
    let storageFileRef = storageRef.child(filename)

    guard let image = self.profileImageView.image else {return}
    guard let uploadData = UIImageJPEGRepresentation(image, 0.3) else {return}

        storageFileRef.putData(uploadData, metadata: nil) { (metadata, error) in

            if error != nil {
                print ("Couldn't upload new profile pic:", error as Any)
                return
            }

1 个答案:

答案 0 :(得分:0)

实际上,我通过删除文件名解决了该问题。因此,在前一种情况下,我正在创建一个uid文件夹,并且该文件夹中将包含一个图像列表,但是由于我只想存储一个图像,因此我将该用户uid设置为实际的文件名,而不是要保存的文件夹的名称。文件。

let storageFileRef = Storage.storage().reference().child("profile_images").child(uid)

基本上只是删除了引用的.child(filename)部分