FirebaseStorageUI + sdwebimage

FirebaseStorageUI + sdwebimage

我今天更新了 firebase pods,但遇到了一些问题。 首先我收到了这个错误:

No such module 'FirebaseStorageUI'

现在我改成:

import FirebaseStorage
import FirebaseUI

这似乎有效,因为所有功能仍然可用,例如存储和 sd_webimage。

现在我收到这个错误:

Cannot convert value of type 'StorageReference' to expected argument type 'URL?'

以下代码在更新前有效

let storageRef = Storage.storage().reference().child("user/thomas_1")
self.profileImageView.sd_setImage(with: storageRef, placeholderImage: UIImage(named: "placeholder"), completed: { (image, error, cacheType, storageRef) in
    if image != nil && error != nil {
        UIView.animate(withDuration: 0.3) {
            self.profileImageView.alpha         = 1
        }
    }
})

现在它没有,它给了我那个错误,我把它改成了 url 但它仍然不起作用或者给我错误。按照文档中的示例和上述方法的示例应用程序应该可以工作。我还发现 url 是直接 gs:// 路径,无法访问。

如果有人能指出(也许是明显的)错误,那将非常有帮助,在此先感谢。

你需要获取图片的下载URL,可以通过downloadURL方法获取,像这样:

let storageRef = Storage.storage().reference().child("user/thomas_1")

storageRef.downloadURL { url, error in
  guard let url = url else { return }
  self.profileImageView.sd_setImage(with: storageRef, placeholderImage: UIImage(named: "placeholder"), completed: { (image, error, cacheType, storageRef) in
    if image != nil && error != nil {
      UIView.animate(withDuration: 0.3) {
        self.profileImageView.alpha = 1
      }
    }
  })
}

这会起作用,但我建议不要像上面的示例那样每次都生成下载 URL,我建议在最初上传图像后立即生成它,然后存储此下载 URL在您使用的任何数据库中。