[英]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.