Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 以低流量从FB存储加载图像的最佳做法_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

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

Android 以低流量从FB存储加载图像的最佳做法,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我需要一些关于存储和加载的最佳实践的建议 由基本数据和图像组成的对象。我已经实现了一个工作版本,但我不确定这种方式是否合适 应用程序: 用户拥有一个汽车集合,可以将其添加或删除到该集合中,并查看有关该汽车的详细信息 这类汽车物体的一个例子 Car -Name:"Golf 42" -Manufacturer:"VW" -Image:The image 当前状态: 所有非图像数据都存储在我的Firebase实时数据库中,并在应用程序启动/用户登录时进行查询。 但是,我不确定存储图像本身

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

应用程序:
用户拥有一个汽车集合,可以将其添加或删除到该集合中,并查看有关该汽车的详细信息

这类汽车物体的一个例子

Car
  -Name:"Golf 42"
  -Manufacturer:"VW"
  -Image:The image
当前状态:
所有非图像数据都存储在我的Firebase实时数据库中,并在应用程序启动/用户登录时进行查询。 但是,我不确定存储图像本身的最佳实践是什么

我知道我可以将图像存储到Firebase存储数据库中,并使用FirebaseUi和glide将其下载并绑定到本地视图 (如图所示)

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

我的第二个想法是以结构化的方式从FB存储中下载“缺失”的图像。 当用户现在向其收藏中添加新车时,应用程序将下载图像并将其保存在设备上。 视图总是使用这些存储的图像来节省移动流量。 在我看来,这应该会稍微提高性能。
我在一个回收站里展示汽车。典型的所有用户都应该在她的收藏中拥有一堆汽车,我认为很多用户甚至不会收藏100辆汽车


但是,我不确定这是否是一种好的做法,或者更确切地说,还是继续使用firebaseUi Glide工具。

@Rantir Glide默认情况下会为您缓存图像,您可以根据您的需要进行配置,请参阅()和其他一些信息()
如果得到空白图像,你可以在Glide中使用“Placehloder”,参见()


还有w.r.t最佳实践,我不能向你保证这是不是最佳实践,但你可以尝试一件我曾经在我的应用程序中使用过的东西。你可以在FBDatabase中存储你的FbStorage图像的引用/URi,然后使用ValueEventListner引用FBDatabase ref来显示你的视图,这样你可以更好地控制你应用程序的图像部分&此外,你还可以试着启用FB持久性()此外,为了获得更好的体验,Glide将自动为您缓存图像。在将图像附加到视图之前,我是否可以强制Glide缓存图像?现在我遇到了以下问题:用户启动应用程序并登录。按下集合(带有图像的Recyclerview)时,图像(或至少部分图像)尚未从firebase存储中完全下载。因此,它们是空白的。一段时间后(几秒钟左右),可以填充imageview。