我目前正在从事一个需要大量Firebase存储访问权且占用大量带宽的项目。用户可以创建带有图像的帖子,然后其他用户可以查看该帖子。问题是每次用户刷新页面时,它将再次重新加载所有帖子,这使我们的带宽消耗激增,从而使Firebase疯狂存储。
我阅读了有关Firebase的keep sync方法的信息,但这仅适用于一个应用会话,这意味着下一个会话我将再次下载所有图像。
我想到的一个解决方案是使用会议室数据库存储图像,并将URL保存为密钥。如果url在数据库中,则从数据库加载,否则下载。我当时正在考虑将数据库限制为仅15张左右的图像。我知道在房间内保存图像通常也不是一个好主意。
我使用下面给出的代码尝试了glide的磁盘缓存,但是计数仍然上升。有使用滑行的解决方案吗?
StorageReference storageRef = FirebaseStorage.getInstance().getReferenceFromUrl(post.getImageUrl());
GlideApp.with(context).load(storageRef).skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.RESOURCE).into(cardViewHolder.mainImage);
Glide给我粗略的结果,有时它是从url(连续两次)中获取的,而其他时候我可以通过图像加载的速度来告诉它使用缓存。 我试过阅读滑行如何精确使用缓存, 我在我们glideapp.load(url).diskCach ...时感到困惑,它第一次从Internet加载url,但是第二次加载url时,它仍然使用Internet吗?还是直接缓存?