【问题标题】:Firebase iOS storage imagesFirebase iOS 存储映像
【发布时间】:2017-08-28 12:01:59
【问题描述】:
我们当前的系统是这样工作的。
一个对象有一个时间戳来指示图像已为应用程序更新。此时间戳将在图像上传到存储时更新。旧图像将被新图像替换。
但是我们的 iOS 开发人员 (Frank) 有一个问题,他正在使用 SDWebImage 将图像加载到他的单元格中。但是当他使用相同的路径并且对象中的图像时间戳发生变化时,SDWebImage 不会重新加载图像。因为它会缓存带有 URL 的图像。
如何解决?
【问题讨论】:
标签:
ios
swift
firebase
firebase-storage
sdwebimage
【解决方案1】:
您应该删除缓存的图像。
SDImageCache 使您可以管理 SDWebImage 的缓存数据,并且它具有可以删除缓存图像的属性。
当然,您可以使用所有缓存的图像或仅一张带有 url 的图像。
我的项目中的代码如下。
SDImageCache* 缓存 = [SDImageCache sharedImageCache];
[cache removeImageForKey:"你要移除的图片的缓存Url" fromDisk:YES withCompletion:nil];
它适用于我,它不会让您删除所有缓存的数据。
希望对你有帮助
【解决方案2】:
我有完全相同的问题。
如果您使用数据库来引用您的存储对象,那么以下内容可能适合您。
虽然您的文件名称不会在图像发生变化时发生变化,但单独的下载链接会发生变化(可在 Firebase 控制台的元数据中找到)。不要使用标准的 Firebase 存储方法,而是使用带有 SDImageCache 的唯一下载 url。每次图片更新,这个url都会刷新,SDImageCache会把它识别为新的!
imageToSet.sd_setImage(with: URL(string: imageUrl),
placeholderImage: "Profile-Placeholder")