我刚刚将我的项目更新到最新版本的 Firebase Storage,现在收到警告:
downloadURL() 已弃用:使用 StorageReference.downloadURLWithCompletion() 获取当前下载 URL。

我查看了 Firebase 图像上传文档,但它仍然使用 downloadURL() 进行引用,该代码现已折旧。在下面的代码中,我以字符串的形式获取图像的下载 URL。该代码有效,但由于 downloadURL() 已折旧,因此现在需要更新

uploadProfilePicTask.observe(.success) { snapshot in

  guard let profilePicStringURL = snapshot.metadata?.downloadURL()?.absoluteString else { return }
  ...

这是我的尝试更新。我使用新的 downloadURLWithCompletion() 尝试了下面的代码,但 snapshot.metadata?.storageReference? 中的某些内容返回 nil,因此我无法检索 url 字符串。有谁知道如何在下面适本地使用新的 downloadURLWithCompletion()
uploadProfilePicTask.observe(.success) { snapshot in
  snapshot.metadata?.storageReference?.downloadURL { URL, error in
    if let urlString = URL?.absoluteString {
      // Do something
    } else {
      return
    }
  }

最佳答案

基本上不使用元数据,而是在您的观察事件成功后获取 url。由于它成功并且您知道它在那里,因此您可以下载该 URL。在他们的 docs 中有“生成下载 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
                    }
           })

10-08 04:13