Firebase keepSynced(true)

时间:2017-01-05 06:50:20

标签: android firebase firebase-realtime-database

在Firebase数据库中的多个路径上使用同步时有哪些权衡取舍?

databaseRef.keepSynced(true);

我从不清除这些路径的同步。

另外,我可以调用databaseRef.keepSynced(true);在同一条路上多次。有问题吗?

我也在使用

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

那么,就电池续航时间,内存问题而言,我为此同步“付费”了什么?

1 个答案:

答案 0 :(得分:6)

当您使用keepSynced() method时,您告诉Firebase下载并缓存来自databaseRef的所有数据。我希望databaseRef不是您数据库的根参考,因为如果是,您可以下载整个数据库,这不是一个好习惯。

您应该使用keepSynced()来缓存您的应用离线工作所必需的节点。

您可能想知道与setPersistanceEnabled(true)的区别是什么。好吧,setPersistanceEnabled(true)只在连接到该节点的监听器时(当数据至少被读取一次时)才缓存数据。

另一方面,即使没有连接侦听器,keepSynced(true)也会缓存该节点的所有内容。