如何在Firebase中使用“ StorageReference.downloadURLWithCompletion()”?

时间:2018-07-29 08:25:25

标签: ios swift firebase firebase-storage

嗨,我对使用Firebase制作ios应用程序有疑问

如今,我正在通过观看YouTube进行聊天应用程序

https://www.youtube.com/watch?v=MJ1r5jjdf4Q&index=4&list=PLmdU__e_zPf9uczwNhLNANvxT5mzxMiXQ

在这里

在源代码上,IWebElement Depart = driver.FindElement(By.XPath("///input[@name='fromPort' and @value='Sydney']")); 出现错误“类型为'StorageMetadata'的值没有成员'downloadURL'”

我听说Firebase中不推荐使用downloadURL(),因此文档说使用let imageUrl = data?.downloadURL()?.absoluteString而不是StorageReference.downloadURLWithCompletion()

但是我不知道如何更改代码。

请告诉我如何更改代码。并修改代码

谢谢!

downloadURL

1 个答案:

答案 0 :(得分:0)

您可以查看Firebase 5上传文件here的更新文档,该API已更改,因此您应该使用StorageReference的downloadURL方法。

因此您的代码将变成这样:

func signupEvent(){
  Auth.auth().createUser(withEmail: email.text!, password: password.text!){(user,err) in
    let uid = user?.user.uid 
    let image = UIImageJPEGRepresentation(self.imageView.image!, 0.1)

    let storageItem = Storage.storage().reference().child("userImage").child(uid!)
    storageItem.putData(image!, metadata:nil, completion:{(data, error) in
        // Now is good to check errors
        if error != nil {
            print("Error: couldn't upload the image")
        }
        else {
            storageItem.downloadURL(completion: { (url, error) in
                if error != nil {
                    print(error!)
                    return
                }
                if url != nil {
                    let imageUrl = url!.absoluteString
                    Database.database().reference().child("users").child(uid).setValue(["name": self.name.text!, "profileImageUrl" : imageUrl])
                }
            }
        }
    })

 }
}