Firebase Realtime Databaseはオフラインサポートを提供していますが、オンライン接続で提供されるデータとローカルでオフラインで変更されるデータを区別するにはどうすればよいですか?Firebaseデータベースはオンラインとオフラインのデータを区別します
答えて
Firebaseデータベースは、クライアントが接続されているかどうかを特定する方法を提供します。
Googleは、このトピックに便利なdocumentationを書きました。
提供されたリンクから:
が多く存在関連機能について接続状態
を検出し、それがオンラインまたはオフラインのときに知っているクライアントのために有用です。 Firebase Realtime Databaseクライアントは、クライアントの接続状態が変わるたびに更新される特別な場所である
/.info/connected
を提供します。DatabaseReference connectedRef = FirebaseDatabase.getInstance().getReference(".info/connected"); connectedRef.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { boolean connected = snapshot.getValue(Boolean.class); if (connected) { System.out.println("connected"); } else { System.out.println("not connected"); } } @Override public void onCancelled(DatabaseError error) { System.err.println("Listener was cancelled"); } });
/.info/connected
値は、クライアントの状態に依存しているので、クライアント間で同期されませんブール値です。つまり、1つのクライアントが/.info/connected
をfalseと読み取る場合、別のクライアントもfalseを読み取るという保証はありません。Androidでは、Firebaseが自動的に接続状態を管理し、帯域幅とバッテリの使用量を削減します。クライアントにアクティブなリスナーがなく、保留中の書き込みまたは
onDisconnect
操作がなく、goOffline
メソッドによって明示的に切断されていない場合、Firebaseは60秒間使用しないと接続を終了します。
クライアントがデータベースに接続しているかどうかを知ることで、オンラインとオフラインのストレージから提供されるデータを区別するのに役立ちます。 DataSnapshot
がオンラインまたはオフラインデータから来るかどうかを確認する具体的な方法はないと私は確信しています。
これは実際の方法ではありません。 "onConnected"コールバックの後に値をロードすることによってそれをテストし、最初にキャッシュされた(オフライン)値が返され、後で新しい(オンライン)値が返されます。 –
アクティブなリスナーがない場合は、60秒間切断します。クライアントがインターネット/ firebase接続を持っているかどうかを調べ、falseの場合はネットワークエラーを表示するために、.info/connected referenceを聞いています。 firebaseはこの場合、.info/connectedのリスナーをアクティブなリスナとしては考慮していないようです。 –
- 1. オフラインFirebaseデータベースのバージョンとオンラインのものをマージする方法
- 2. データベース同期オンライン/オフライン
- 3. ChromeはCSSをオンラインとオフラインで別々にレンダリングしますか?
- 4. Firebase Database古いデータと新しいデータを区別するUnity
- 5. Firebaseチャット、オンラインユーザとページリフレッシュはオフラインでオンラインに戻る
- 6. Firebase初期ロードでは、オンライン/オフラインのスニペットの最初の応答は常に「オフライン」
- 7. Microsoft SQLデータベースをオンラインまたはオフラインにするSQLスクリプト?
- 8. Firebaseデータベースのオフライン機能
- 9. オフライン.mdbファイルとオンライン.mdbファイルとの間のデータベースの同期
- 10. Firebaseデータベースがオフラインでデータをロードしない
- 11. Firebaseを使ってユーザのオンライン/オフライン状態を追跡する
- 12. オンラインでの画像とデータをオフラインで保存する方法
- 13. オンラインとオフラインの2つのSQL Serverデータベース間の同期
- 14. オンラインまたはオフラインに設定する
- 15. ブラウザがオンラインに戻ったときに、別々のクライアント側IndexedDBデータベースのオフライン変更をマージできますか?
- 16. オンラインに接続するまでオフラインでデータを保存する
- 17. Firebase PWA - オフラインCUDデータ同期
- 18. ディスクをオンライン/オフラインにする
- 19. Nginx/Apacheが別のウェブサーバーの状態を確認する(オンライン/オフライン)
- 20. RestKit iOSアプリケーションのオンラインとオフラインのサポート
- 21. JSDOMでオンライン/オフラインにすること
- 22. pouchDBとBackand、オフラインとオンライン同期
- 23. Firebaseデータベースがオフラインで値を返しません。
- 24. Node.jsアプリケーションがオフラインのときにFirebaseデータベースをオフラインに設定する必要がありますか?
- 25. Firebaseの内部アップデートと外部アップデートを区別するには
- 26. NodeJS TwitchAPIオフライン/オンライン状態
- 27. socket.ioでLaravelにユーザーのオンライン/オフライン状態を送信します
- 28. オフライン地図データを別のアプリに転送しますか?
- 29. Phonegapイベントはオンライン/オフラインでは動作しません
- 30. サーバはオンラインまたはオフラインですか? (サーバーの状態)
オンラインデータを確実に読み取ることを目標にしている場合は、http://stackoverflow.com/questions/35454652/how-to-bypass-the-firebase-cache-to-refreshの複製です-data-in-android-app –
あなたは解決策を見つけましたか? – Andrea