2017-11-19 14 views
0

ここではローカルの変更は行われません。 firestore query-dataを読んでください。 SnapshotListenerは、デバイス上で2回発射し、書き込みと受信の両方が同じcollectionまたはdocumentに聞こえます。Cloud Firestoreのリアルタイムアップデートとローカルの変更

チャットメッセージを追加してチャットメッセージを追加して(同じデバイスから)リスニングすると、ローカルキャッシュの場合はSnapshotListenerEventlistenerが最初に起動し、その後データがサーバーに書き込まれるときに発生します。私はこのような "サーバー"のようなサーバートリガーだけhppening表示されません:

String source = snapshot != null && snapshot.getMetadata().hasPendingWrites() 
       ? "Local" : "Server"; 

任意のideですか?

答えて

0

これは、Cloud Firestoreデータベースに書き込むときにトランザクションを使用したためです。トランザクションはキャッシュに書き込まれません。

0

書込みが完了したときだけ知りたい場合は、hasPendingWritesを使用せずに完了コールバックを聞くことができます。ただし、完了コールバックは、サーバーが要求を確認した時点でのみ発生します。このインタフェースは、操作がデータベースサーバによって確認応答されたときに通知される方法として使用され、完全であるとみなされます。オフラインの場合、完了コールバックはまったく起動しません。

関連する問題