【问题标题】:Android Glide doesn't get the newest version of the pictureAndroid Glide 获取不到最新版图片
【发布时间】:2018-03-11 05:15:39
【问题描述】:

尝试使用 Glide for Android 和 Firebase。

我的代码运行良好(上传、下载到 ImageViews),我的问题是当我更改 Firebase 存储中的图像(例如,用户图像)时,应用程序不“知道”该图像在数据库已更改并一直显示缓存版本。

显然我希望应用程序使用缓存,但要知道数据库中的原始图像是否已更改。

有办法吗?

【问题讨论】:

  • 当你“改变”图像时你是替换用户的图像还是简单地添加一个新图像?以防万一,是否更新数据库中新图像的路径?
  • 谢谢,我正在替换图像,而不是在另一个路径中添加另一个图像。
  • 如果 URL 没有改变,那么我不确定 Glide 是否知道图像已经改变。
  • 不知何故,你能知道用户更新了他的图像吗?如果可以,即使 URL 未更改,您也可以使用 (new StringSignature(UUID.randomUUID().toString())) 重新下载相同的图像
  • 如果您想让您的应用程序在发生更改时加载新图像,您需要实现一种方法来通知应用程序图像已更改。最简单的方法可能是简单地将新图像上传到存储并更改您的应用从哪里获取它的 URL。

标签: android firebase caching firebase-storage android-glide


【解决方案1】:

如果不需要缓存,可以试试

Glide.with(ctx)
    .load(Uri))
    .diskCacheStrategy(DiskCacheStrategy.NONE)
    .skipMemoryCache(true)
    .into(mImage);

这也将删除 Glide 存储的缓存。

Glide.get(ctx).clearDiskCache();

【讨论】:

  • 谢谢。我正在尝试使用缓存并滑行“了解”数据库中的图像已更改(在其原始路径中)。
  • 我不知道是否可以使用 Firebase 完成,但是您可以在 url 路径相同的情况下更改图像。通过这种方式将下载新图像
猜你喜欢
  • 2018-09-29
  • 2018-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
相关资源
最近更新 更多