我的Firebase存储器中有几张图像,我计划将这些图像作为自助广告定期更改。
在我的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');
});