一尘不染

Firebase存储警告:不建议使用downloadURL():使用`StorageReference.downloadURLWithCompletion()

swift

我刚刚将项目更新为最新版本的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
    }
  }

阅读 346

收藏
2020-07-07

共1个答案

一尘不染

基本上不使用元数据,而只是在您的观察事件成功之后获取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
                    }
           })
2020-07-07