Firebase下载庞大的数据集android

时间:2017-02-24 14:50:23

标签: android firebase

我正在尝试登录后从firebase下载数据集。一些计数和离线功能的大约23000条记录。 它需要大量的时间,处理器时间和内存。

当我尝试分页时获取500条记录需要大量的cpu时间,10分钟内几乎达到45%。这是一个电池滤水器。

我必须使用firebase来实现实时功能。

有没有人遇到过此案例,或者有任何想法如何更有效地进行初始下载?

为获得更好的理解拍了截图

enter image description here

蓝色是内存,红色CPU和橙色是网络。

感谢您的帮助。

修改

分页只解决内存问题(当我下载数据时,应用程序不会在我的手机上占用120 MB内存)。问题是我几乎可以立即下载500条记录,当我在23k记录中下载一页时,需要大约10秒......

数据如下:

enter image description here

EDIT2: 我可能想出了最快的方法。我正在使用firebase REST API来下载这么多数据,而且比从SDK获取数据更快更好(为了我的目的)。

对于手机上的firebase存储中的缓存,我使用此代码

FirebaseDatabase db = FirebaseDatabase.getInstance();
DatabaseReference ref = getReference(db);
db.goOffline();
ref.updateChildren(mapFromResponse);
db.goOnline();

1 个答案:

答案 0 :(得分:2)

在我的应用中,我还需要在应用首次启动时从Firebase下载大量数据记录,然后将它们缓存离线。

是的,最初下载它们需要一些时间,但是你可以做的很少。如果有大量数据,则需要一些时间。即使您尝试采用分页方法,仍然必须以任何方式下载这些数据。

您可以在下载此数据时向用户显示不确定的加载,并确保它们在Firebase中本地缓存,以便不再次下载。