2017-02-24 61 views
1

我有多个单元格当前拥有来自Firebase的不同照片。每次用户加载这些图像然后滚动,它们都会被重新下载,从而快速消耗数据。我发现这与任何有计量数据计划的用户有关。我能做些什么来解决这个问题? Firebase是否提供任何选项来缓存下载的图片?来自Firebase的缓存图片

这是我当前如何调用图像插入细胞:

if let imageName = post["image"] as? String { 
     let imageRef = FIRStorage.storage().reference().child("images/\(imageName)") 
     imageRef.data(withMaxSize: 25 * 1024 * 1024, completion: { (data, error) -> Void in if error == nil { 
      let image = UIImage(data: data!) 
      cell.postImageView.image = image 

回答

2

使用Kingfisher缓存图像。它重量轻,使用非常简单。只需从firebase传递您的网址,它就会自动缓存它。

let url = URL(string: "url_of_your_image") 
imageView.kf.setImage(with: url) 
0

火力地堡已经做缓存到本地数据库,它从服务器获取实时数据之前,这样的问题并不严重。但是,如果您希望执行更好的缓存,请使用Glide,滑动缓存图像,并且您可以指定时间签名,以便仅在更新后才重新提取图像。

这是超级容易,但你需要托管图片在谷歌云服务,或AWS,或任何甚至

ImageView imageView = (ImageView) findViewById(R.id.my_image_view); 
Glide.with(this).load("url").into(imageView); 
+1

编辑:滑翔仅适用于Android – gabe

+0

哎呀,没注意到你在iOS – IsuruKusumal

+0

haha​​hahahahahah – VVL