使用Firebase存储清除iOS图像的图像缓存

时间:2018-06-20 03:51:53

标签: ios firebase caching google-cloud-functions firebase-storage

我的Firebase存储器中有几张图像,我计划将这些图像作为自助广告定期更改。

ad files

在我的iOS应用中,我有一个收藏夹视图来显示图像...

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
    let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "bannerCell", for: indexPath) as! BannerCollectionViewCell

    // Cancel other tasks from loading images
    cell.bannerImageView.cancelImageDownloadTask()

    // Get Project URL
    let urlToData = "gs://myproject.appspot.com/"+"adImages/"+"ad\(indexPath.row)"+".png"
    let reference = Storage.storage().reference(forURL: urlToData)

    // Load the cell image
    DispatchQueue.main.async {
        cell.bannerImageView.sd_setImage(with: reference)
    }

    return cell
}

但是目前,当我在Firebase Storage中更改图像时,图像仍保持缓存状态(由于文件名相同,因此不确定是在电话本地还是在Firebase中)。

是否有一种方法可以在文件更改时清空缓存以提供新图像?

更新: 我读到只要文件更改,我都可以运行云功能。如果这确实是解决此问题的最佳方法,我不确定如何清除缓存...

exports.updateStorageImage = 
functions.storage.object().onFinalize((object) => {
  const fileBucket = object.bucket; // The Storage bucket that contains the file.
  const filePath = object.name; // File path in the bucket.

  // Clear the image cache?

 console.log('Firebase Storage Image Changed');
});

0 个答案:

没有答案