2017-06-19 51 views
0

我想,如果能夠對火力地堡實時數據庫中的客戶端的離線支持,爲您節省任何帶寬? 我想知道Firebase客戶端何時開始從存儲中加載數據庫,然後繼續並僅同步稍後添加的內容?或者它是否同步所有內容,並且是否無法回退到之前存儲的脫機數據。節省帶寬的火力地堡實時數據庫啓用離線支持

回答

0

我對Google員工今天在談到谷歌下一步阿姆斯特丹,他證實了這一理論,我有。 如果您的應用已啓用脫機支持,並且您將從脫機狀態轉爲在線狀態,則Firebase將以最智能的方式同步您的數據庫。這意味着如果可能的話,它只會發送改變後的值。所以,啓用離線支持確實可以節省帶寬。

+0

在我看來,你剛剛說的是正確的,'Firebase會以最聰明的方式同步你的數據庫。「但正如我前面提到的,當您恢復在線狀態時,只有在離線狀態下進行的更改會在「Firebase服務器」上更新。但說我們離線保存相同的帶寬,在我看來是錯誤的:| –

+0

我同意你不應該爲了節省帶寬而離線。 –

+0

請看我更新的答案。希望我已經清楚了。 –

1

如果您正在使用FirebaseDatabase.getInstance().setPersistenceEnabled(true);意味着你就可以查詢你的,即使你是脫機的數據庫。發生這種情況是因爲Firebase會創建數據庫的本地副本。一旦重新聯機,每次在離線狀態下進行的更改都將在Firebase服務器上進行更新。所以這個選項不是用來節省帶寬的,是enable offline capabilities

更明確,就是用火力地堡數據庫,並使用setPersistenceEnabled(true)保持它的數據庫自身的內部(本地)版本每一位客戶。當數據更新時,首先將寫入數據庫的本地版本

因此,所有對Firebase的寫入都會在任何數據寫入服務器之前立即觸發本地事件。這意味着無論互聯網連接如何,該應用都將保持響應。

重新建立互聯網連接後,您將收到相應的當前服務器狀態。 Firebase客戶端synchronizes將數據與Firebase服務器以及與使用相同數據庫的其他客戶端相關聯。

另一件要記住的是,火力地堡自動管理connection state來減少帶寬和電池使用。當客戶端不具有active listeners,沒有未決寫入或onDisconnect操作,而且未明確通過goOffline方法斷開,火力地堡關閉不活動的60秒後的連接。

作爲結論,當我們啓用離線支持時,帶寬沒有區別。好處是我們可以查詢和更改數據庫,即使我們沒有連接到互聯網。

希望它有幫助。

+0

這根本不回答這個問題。 –