如何将图像从Firebase下载到Swift,然后更快地在UIImageView中显示?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将图像从Firebase下载到Swift,然后更快地在UIImageView中显示?相关的知识,希望对你有一定的参考价值。

我正在将图像从Firebase下载到Swift(大多数大约5 MB),然后在UIImageView中显示它们。每个只出现一次,因此无需缓存它们以供日后查看。大多数情况下,他们需要一两秒才能加载。有没有办法缩短这个时间?

我的代码:

Database.database().reference().child("movies").child(movieNumString).observeSingleEvent(of: .value, with: { (snapshot) in
if let dictionary = snapshot.value as? [String: AnyObject] {
    let UrlString: String? = ((dictionary["posterPhotoURL"] as? String))
    let Url = URL(string: (UrlString)!)

    self.moviePosterImageView.sd_setImage(with: Url, placeholderImage: #imageLiteral(resourceName: "PImage"), options: [], completed: { (image, error, cacheType, url) in
            self.moviePosterImageView.image = image
    })
}
答案

请参阅堆栈溢出guidelines以备将来使用。

最重要的是,您应该担心图像的数据和大小,下载它们所需的时间会随着您减小尺寸而减少。尝试将尺寸减小到一些kb。

在Firebase中,您可以拥有运行服务器端的功能,例如,您可以对图像执行调整大小。有关所有函数示例,请参阅here,并使用sharp包来调整this的大小。

以上是关于如何将图像从Firebase下载到Swift,然后更快地在UIImageView中显示?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Firebase 存储中获取调整大小的图片下载 URL

如何从firebase下载图像?云火库?福布斯存储?

如何将多个图像上传到 Firebase 存储并返回多个下载 URL

如何从 Firebase (Swift) 中删除一个孩子

如何在没有新服务器请求的情况下将下载的图像从父路由传递到子路由

无法在 Firebase Firestore 中存储下载 URL