我成功将图片上传到了Firebase存储器,但下载网址未存储在数据库中

时间:2019-08-01 23:22:23

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

我正在尝试将存储的图像的url保存在数据库中,但是这样做没有成功。它似乎跳过了以下saveButton函数中的指令,因此它没有在数据库中显示任何url。

@IBAction func saveButtonClicked(_ sender: Any) {
    let storageRef = Storage.storage().reference().child("profileImages").child(id!)

    if let uploadData = profilePicture.image?.pngData(){

        storageRef.putData(uploadData, metadata: nil) { (metadata, error) in
            if error != nil{
                print(error)
                return
            }

            storageRef.downloadURL(completion: { (url, error) in
                if let downUrl = url {

                    Database.database().reference().child("Users").child(self.id!).child("profileImageUrl").setValue(downUrl)
                }
            })
        }



    }else{
        Database.database().reference().child("Users").child(self.id!).child("profileImageUrl").setValue("default")

    }

    self.performSegue(withIdentifier: "goToMainPage", sender: self)

}

}

1 个答案:

答案 0 :(得分:0)

尝试替换

storageRef.downloadURL(completion: { (url, error) in
                if let downUrl = url {

                    Database.database().reference().child("Users").child(self.id!).child("profileImageUrl").setValue(downUrl)
                }
            })

作者

let pat = (metadata?.downloadURL()?.absoluteString.description)
let link = pat! //Link of image
Database.database().reference().child("Users").child(self.id!).child("profileImageUrl").setValue(link)