【发布时间】:2020-06-01 19:51:27
【问题描述】:
我正在使用 flutter_cached_network_image 包从 firebase 加载图像。当用户更新他的个人资料图片(文件名仍然相同)时,加载的图像仍然与更新前的图像相同,因为它是从缓存中加载的(因为它仍然具有与以前相同的 url)。 是否可以从缓存中清除图片以便加载新图片?
【问题讨论】:
标签: image firebase flutter caching
我正在使用 flutter_cached_network_image 包从 firebase 加载图像。当用户更新他的个人资料图片(文件名仍然相同)时,加载的图像仍然与更新前的图像相同,因为它是从缓存中加载的(因为它仍然具有与以前相同的 url)。 是否可以从缓存中清除图片以便加载新图片?
【问题讨论】:
标签: image firebase flutter caching
目前显然没有解决方案。见这里:https://github.com/Baseflow/flutter_cached_network_image/issues/77
我使用地址中的图像版本来解决这个问题。比如:https://example.com/image.jpg?version=14
【讨论】:
我遇到了同样的问题。这对我有帮助:
imageCache.clearLiveImages();
imageCache.clear();
_bloc.add(ReloadEvent());
成功更新照片后清理缓存并重建小部件。
【讨论】:
就像@EderBaum 说的,你可以强制输入一个额外的查询字符串,值取决于你想要的效果,例如:
1 - 从不缓存 http:urlofresource.com/yourimage.jpg?version={NewRandonNumberGenerated}
您可以使用Random 类来实现这一点。
2- 根据应用版本重新加载缓存
以前一样,但现在,您可以使用可以放入全局状态或其他位置的版本信息在更新后检索信息
3 - 使用普通缓存
让小部件完成工作。
【讨论】: