如何在离线模式下保存Firebase实时数据库的一部分

Moh*_*afa 1 android real-time firebase firebase-realtime-database

我想将 Firebase 数据库 (JSON) 中的特定路径存储在本地手机存储中,而不是实时 Firebase 数据库中的所有数据。假设我的 Firebase 数据库中有每个用户的新闻源路径,并且我只想保存为用户指定的新闻源,而不是在用户移动设备的本地存储上加载整个无用的数据。

我从Firabase官方网站上读到了这一段,其中提到

Firebase 实时数据库为活动侦听器同步并存储数据的本地副本。此外,您可以保持特定位置同步。

DatabaseReference scoresRef = FirebaseDatabase.getInstance().getReference("scores");
    scoresRef.keepSynced(true);
Run Code Online (Sandbox Code Playgroud)

如果这是我的问题的解决方案,那么我可以直接使用这一行,而无需编写该行

FirebaseDatabase.getInstance().setPersistenceEnabled(true);
Run Code Online (Sandbox Code Playgroud)

Dou*_*son 5

这两段代码实际上并没有什么关系。他们不做同样的事情。

keepSynced(true)从调用的那一刻起,只要应用程序正在运行,有效地使侦听器在给定引用上保持活动状态,以便数据的本地版本始终与服务器上的远程版本同步。

setPersistenceEnabled(true)只是激活 SDK 读取的数据的本地缓存。启用持久化后,应用程序仍然可以查询之前读取的数据。对SDK读取的所有数据均生效。启用持久性后,您无法控制缓存哪些数据 - 所有读取的数据最多缓存 10MB。当达到最大值时,最旧的数据将从缓存中逐出。