不建议使用Firebase Storage downloadURL():使用`StorageReference.downloadURLWithCompletion()

OMG*_*Out 4 firebase swift firebase-storage

通常,我使用以下命令将具有url的图像更新为Firebase存储:

Storage.storage().reference().child("profile_images").child(fileName).putData(uploadData, metadata: nil) { [weak self] (metadata, err) in

                    guard let strongSelf = self else { return }

                    if let err = err {
                        print(err)
                    }

                    guard let profileImageUrl = metadata?.downloadURL()?.absoluteString else { return }
                    ProfilePhotoHandler.Instance.addPhotoUrl(withUrl: profileImageUrl)
Run Code Online (Sandbox Code Playgroud)

}

但是现在Xcode 9.3显示警告:不建议使用downloadURL():使用`StorageReference.downloadURLWithCompletion()

Firebase文档仍然显示旧方法。有人能帮助我现在如何处理吗?

小智 5

随着swift 5.0的更改,元数据不再具有downloadURL方法。

相反,您必须按照以下方式进行操作:

let storageRef = Storage.storage().reference().child("message_images").child(fileName)

storageRef.putData(uploadData, metadata: nil) { (metadata, err) in

        if let err = err {
            print(err)
        }
    storageRef.downloadURL(completion: { (url, error) in
    if error != nil {
        print("Failed to download url:", error!)
        return
    } else {
       //Do something with url
        }

      })
    })
}
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。您也可以看看:这个答案,这个答案,这个答案,或者只是在这里查看文档。