Firebase存储警告:不推荐使用downloadURL()':使用`StorageReference.downloadURLWithCompletion()

chi*_*arm 4 ios firebase swift firebase-storage

我刚刚将我的项目更新到最新版本的Firebase存储,现在我收到一条警告:不推荐使用downloadURL():使用StorageReference.downloadURLWithCompletion()获取当前的下载URL.

我查看了Firebase图片上传文档,但它仍然引用了downloadURL()现在已经过折旧的文件.在下面的代码中,我将图像的下载URL作为字符串.该代码可以工作,但现在要进行更新,因为它downloadURL()已经过折旧

uploadProfilePicTask.observe(.success) { snapshot in

  guard let profilePicStringURL = snapshot.metadata?.downloadURL()?.absoluteString else { return }
  ...
Run Code Online (Sandbox Code Playgroud)

这是我尝试更新的.我用新的代码尝试了下面的代码downloadURLWithCompletion() 但是snapshot.metadata?.storageReference?返回nil,所以我无法检索url String.有谁知道如何在downloadURLWithCompletion()下面适当使用新的?

uploadProfilePicTask.observe(.success) { snapshot in
  snapshot.metadata?.storageReference?.downloadURL { URL, error in
    if let urlString = URL?.absoluteString {
      // Do something
    } else {
      return
    }
  }
Run Code Online (Sandbox Code Playgroud)

kel*_*ikh 7

基本上不使用元数据,而只是在您的observe事件成功后获取URL.由于它是成功的,你知道它在那里,你可以下载URL.它们的文档中有"生成下载URL".下面,我假设您的StorageReference是uploadProfilePicTask.

uploadProfilePicTask.downloadURL(completion: { (url, error) in
                    if (error == nil) {
                        if let downloadUrl = url {
                           // Make you download string
                           let downloadString = downloadUrl.absoluteString
                        }
                    } else {
                   // Do something if error
                    }
           })
Run Code Online (Sandbox Code Playgroud)