从流量较低的FB存储加载图像的最佳做法

时间:2017-06-11 14:12:37

标签: android firebase firebase-realtime-database

我需要一些关于存储和加载的最佳实践的建议 由原始数据和图像组成的对象。我已经实现了一个工作版本,但我不确定这种方式是否正常。

应用程序:
用户拥有一系列汽车,可以在那里添加或删除它们,并查看有关这些汽车的详细信息。

这种汽车对象的一个​​例子。

Car
  -Name:"Golf 42"
  -Manufacturer:"VW"
  -Image:The image

现状:
所有非图像数据都存储在我的Firebase实时数据库中,并在应用程序启动/用户登录时进行查询。 但是我不确定最好的做法是存储图像本身。

我知道我可以将图像存储到Firebase存储数据库中并使用FirebaseUi下载并将它们绑定到我的本地视图并滑动 (如此处所示https://firebase.google.com/docs/storage/android/download-files

这就是我现在正在做的事情,但是我不确定这是否是集合中图片的最佳做法,当用户与应用程序交互时可能会多次加载。 或者每个应用程序启动至少一次。

我的第二个想法是下载"缺少"来自FB Storage的图像以结构化方式显示。 当用户现在将新车添加到他的收藏中时,应用程序将下载并将图像保存在设备上。 并且视图始终使用这些存储的图像以节省移动流量。 在我看来,这应该会提高一点性能 我在Recyclerview中显示汽车。典型的所有用户在她的收藏中应该只有一堆汽车,我不认为很多用户甚至会收集100辆汽车。

然而,我不确定这是一个好习惯,还是留在这个firebaseUi Glide的东西。

1 个答案:

答案 0 :(得分:0)

@Rantir Glide默认情况下为您缓存图像,您可以根据需要参考(https://github.com/bumptech/glide/wiki/Caching-and-Cache-Invalidation)和更多信息@(https://futurestud.io/tutorials/glide-caching-basics)来配置它们。 而且,如果获得空白图像,你可以使用" Placehloder"在Glide中,请参阅(https://futurestud.io/tutorials/glide-placeholders-fade-animations

并且w.r.t最佳实践,我不能保证你是不是最佳实践,但你可以尝试我在我的应用程序中使用过的一件事。您可以将您的FbStorage Image的参考/ URI存储在FBDatabase&然后使用ValueEventListner引用FBDatabase引用来查看你的视图,这样你就可以更好地控制你的应用程序的图像部分了。除此之外,您还可以尝试启用FB持久性(https://firebase.google.com/docs/database/android/offline-capabilities)以获得更好的体验