Android Firebase+;滑动,缓存策略
我使用Glide和Firebase加载和兑现图像。通常,我使用图像创建时间,然后确定缓存时间。但在Firebase中,我只能使用第二个请求Android Firebase+;滑动,缓存策略,android,firebase,caching,firebase-storage,android-glide,Android,Firebase,Caching,Firebase Storage,Android Glide,我使用Glide和Firebase加载和兑现图像。通常,我使用图像创建时间,然后确定缓存时间。但在Firebase中,我只能使用第二个请求getMetadata()来获得创建时间。当我在存储器中将一个图像更改为另一个具有相同名称的图像时,如何正确进行缓存?我应该使用getMetadata()还是有其他方法 Glide.with(getContext()) .using(new FirebaseImageLoader())
getMetadata()
来获得创建时间。当我在存储器中将一个图像更改为另一个具有相同名称的图像时,如何正确进行缓存?我应该使用getMetadata()
还是有其他方法
Glide.with(getContext())
.using(new FirebaseImageLoader())
.load(storageReference.child(item.getImageUrl()))
.placeholder(R.drawable.category_image_not_found)
.signature(???)
.into(image);
从我记事起,我就一直处于类似的境地!使用
getMetadata()
速度慢,会导致延迟。我想的是,为了使我的图像保持最新,除了合并实时数据库之外,别无选择。这可以通过以下方式之一完成:-
第一:
每当编辑特定存储位置的图像时,您都会在实时数据库中更新该图像节点的时间戳。当您想要显示图像时,只需下载其时间戳并编写一个与您提到的类似的Glide.signature(timestamp)
方法
第二:
只要在上传/编辑图像时获取图像的下载URL,并将URL保存在实时数据库中即可。这样,每当更新图像时,就会将不同的URL保存到同一位置。这可以保证缓存不会显示过时的图像(更改源URL是使Glide缓存无效的建议方法)
我知道,首先从实时数据库检索数据,然后下载图像可能会带来开销。然而,这是使用Glide+Firebase时唯一的方法。此外,启用持久性和其他实时数据库怪癖可以使其无缝快速