我刚刚将项目更新为最新版本的Firebase Storage,现在收到警告:不建议使用downloadURL():使用StorageReference.downloadURLWithCompletion()获取当前的下载URL。
我看了看Firebase图片上传文档,但它仍然引用了downloadURL()现在使用的折旧价格。在下面的代码中,我将以字符串形式获取图像的下载URL。该代码有效,但由于downloadURL()已贬值,因此现在需要更新
downloadURL()
uploadProfilePicTask.observe(.success) { snapshot in guard let profilePicStringURL = snapshot.metadata?.downloadURL()?.absoluteString else { return } ...
这是我的尝试更新。我尝试使用新代码在下面的代码中,downloadURLWithCompletion() 但是某些代码snapshot.metadata?.storageReference?返回nil,所以我无法检索url字符串。有谁知道如何在downloadURLWithCompletion()下面适当地使用新的?
downloadURLWithCompletion()
snapshot.metadata?.storageReference?
uploadProfilePicTask.observe(.success) { snapshot in snapshot.metadata?.storageReference?.downloadURL { URL, error in if let urlString = URL?.absoluteString { // Do something } else { return } }
基本上不使用元数据,而只是在您的观察事件成功之后获取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 } })