2013-04-27 231 views
2

我可以讓Firebase加載我的數據嗎?假設我的應用程序由一棵有一百萬個節點的樹組成,用戶可以摺疊,展開和修改。絕大多數這些節點將在絕大多數時間保持崩潰狀態,因此將所有內容都保存在內存中是沒有意義的。據我所知,firebase在啓動時將數據庫中的所有內容轉移到客戶端,並不意味着以任何其他方式使用。那是對的嗎?Firebase延遲加載

回答

5

這是不正確的。 Firebase只在您請求時同步數據。要完成這樣的事情,所有關於你如何存儲數據。

舉例來說,一個簡單的例子是這樣的結構,達到期望的結果:

/records/root/record1 
/records/root/record2 
/records/record1/record1-1 
/records/record2/record2-1 

現在,您的出發點做ref.child('root_level').on('child_added'...)。展開節點時,在子路徑上運行child_added

你也可以使用優先級,存儲所有記錄在同一路徑和負載只有那些你需要根據優先級:

/records/record1 (priority null) 
/records/record2 (priority null) 
/records/record1-1 (priority 'record1') 
/records/record2-1 (priority 'record2') 

現在,找回你的根的記錄,您可以使用:

ref.child('records').startAt(null).endAt(null) 

當一個節點展開,您使用以下命令:

ref.child('records').startAt(parentId).endAt(parentId)