2017-04-07 172 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