Firebase使用setPersistenceEnabled保存流量使用

时间:2017-04-07 14:46:40

标签: android firebase firebase-realtime-database

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

据我了解,Firebase客户端将保留应用最近收听的所有数据的本地副本(在磁盘上)。

这是我的firebase节点

/users/userhash/privateTalk/messages/

示例案例

/users/user01-hash/privateTalk/messages/push-hash/hello /users/user01-hash/privateTalk/messages/push-hash/hi /users/user01-hash/privateTalk/messages/push-hash/hey

我正在使用AddChildEventListener

FirebaseDB.instance().ChatDB.Child("users").Child("user01-hash").Child("privateTalk").Child("messages").AddChildEventListener(m_privateTalkListener);

在磁盘上“hi”,“hello”,“hey”

服务器“hi”,“hello”,“hey”,“new msg 01”,“new msg 02”

我想知道我的App Oncreate,Firebase是否只是从服务器下载“new msg 01”,“new msg 02”

1 个答案:

答案 0 :(得分:0)

Firebase Persistence会在磁盘缓存上创建,以便您可以在应用程序关闭或脱机时继续使用Firebase。所以说你添加了一条消息,“离线消息”,但无法连接到互联网? Firebase会将写入操作和新消息存储在其本地缓存中。 Firebase也会将该本地引用视为对函数有效。因此,如果您有一个“添加孩子”的事件监听器,那么当孩子被添加到本地副本时,它仍然会触发。当您的设备重新建立与数据库的连接时,它将生成所有存储的事务并更新存储的值。如果用户在数据库同步之前关闭应用程序,则会发生同样的情况:它将保留更改并在下次应用程序打开和连接时进行更新。