2017-04-07 145 views
0

FirebaseDatabase.getInstance().setPersistenceEnabled(true);火力地堡节省流量与setPersistenceEnabled

使用据我了解,在火力地堡客户端将保留所有数据的本地副本(在磁盘上),该应用程序最近收听。

这是我的火力点

/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);

磁盘上的 “喜”, “你好”, “哎”

服务器 “喜”, “你好”, “哎”,“新味精01”, “新的味精02”

我m想知道我的应用程序是否已创建,Firebase仅从服务器上下载“新msg 01”,“新msg 02”

回答

0

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

+0

感谢您的回复,我再次发布了更详细的问题。 [链接](http://stackoverflow.com/questions/43289308/firebase-can-i-get-only-messages-that-are-not-on-disk-from-the-server) – Study