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