我正在使用flutter_cached_network_image包从firebase加载图像。当用户更新其个人资料图片(文件名仍然相同)时,由于从缓存中加载(因为它仍具有与以前相同的url),因此加载的图像与更新前的图像相同。 是否可以从缓存中清除图片,以便加载新图像?
答案 0 :(得分:2)
显然,目前没有解决方案。看到这里:https://github.com/Baseflow/flutter_cached_network_image/issues/77
我使用地址中图像的版本来解决此问题。类似于:https://example.com/image.jpg?version=14
答案 1 :(得分:1)
就像@EderBaum一样,您可以强制放置其他查询字符串输入,该值取决于所需的效果,例如:
1-从不缓存 http:urlofresource.com/yourimage.jpg?version = {NewRandonNumberGenerated}
您可以使用Random
类来实现此目的。
2-根据应用版本重新加载缓存
与以前相同,但现在,您使用版本信息,可以将其置于全局状态或其他位置以在更新后检索信息
3-使用普通缓存
只需让小部件完成工作即可。
答案 2 :(得分:0)
我有同样的问题。这对我有帮助:
imageCache.clearLiveImages();
imageCache.clear();
_bloc.add(ReloadEvent());
成功更新照片后,清理缓存并重建小部件。