簡體   English   中英

Firebase實時數據庫:如何停止脫機寫入? (最佳方法)

[英]Firebase realtime database: How to stop offline write? (Best approach)

當前,為了防止從離線狀態返回后寫入Firebase,我在每次寫入操作之前都要檢查Internet連接。 而且,我的意思並不只是檢查網絡連接,還包括是否有實際的互聯網訪問權限。 我ping google.com以便查找。

我認為這不是最好的方法。

因此,什么是最好的做法,只是在沒有Internet連接可用時只是告訴Firebase不要緩存任何寫操作,而只是預覽一條簡單的“無Internet連接可用”消息?

如果在用戶設備暫時失去連接時確實必須使應用程序無法使用,則必須將偵聽器添加到名為/.info/connected的特殊位置。 它會在SDK認為已斷開連接時告訴您。 文檔中對此進行了描述。 當這樣通知您的偵聽器時,您將必須編寫代碼以使您的應用程序表現出所需的行為。

但是,在SDK確定連接實際上已經消失之前,您的應用程序可能會在連接斷開之前花費的時間寫入數據。 而且這些寫入仍將同步。

最好只是讓您的應用程序可以脫機使用,並在用戶的數據由於脫機而尚未同步時通知用戶。

因此,最好的做法是在沒有Internet連接時告訴Firebase不要緩存任何寫操作

您不能告訴Firebase在脫機時不要將寫入操作添加到隊列中。 這是Firebase實時數據庫的最重要功能之一。 因此,即使您的應用程序暫時失去了網絡連接,Firebase應用程序也將正常運行。 那就是這個數據庫的美。

默認情況下,禁用離線持久性。 如果啟用了持久性,則禁用最簡單的方法是使用以下代碼行:

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

這樣,您告訴Firebase根本不需要任何緩存的數據,因此不會有任何寫掛起的操作,但是不幸的是,您可以告訴您僅在脫機時才停止緩存數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM