cloud_firestoreクエリをリアルタイムでリッスンするための読み取りカウントはいくつですか?

DMonkey

flutter / dartに次の擬似コードがあると想像してください。

  Stream<List<T>> list() {
      Query query = Firestore.instance.collection("items");
      return query.snapshots().map((snapshot) {
        return snapshot.documents.map((doc) {
          return standardSerializers.deserializeWith(serializer, doc.data());
        }).toList();
      });
  }

データベース内の「アイテム」のコレクション全体を聞いています。簡単にするために、合計10のドキュメントがあり、私は常に変更を聞いているとしましょう。

コードのどこかでこのストリームを聴いています。たとえば、このクエリが最初に呼び出されたときに、10個すべての「アイテム」を返すとします。これは10回の読み取りとしてカウントされます。これらのドキュメントの1つをfirestoreWebインターフェイス(または他の場所)で直接変更すると、リスナーが起動され、1つのドキュメントのみを変更したにもかかわらず、さらに10回の読み取りがカウントされるという印象を受けます。クラウドプロジェクトの[使用状況]タブを確認しましたが、この疑いがあります。

  1. このクエリで1つのドキュメントのみが変更された場合でも、10のドキュメント読み取りがカウントされるのはこの場合ですか?

  2. 答えが「はい」の場合、次の質問は「list()を2回呼び出したいと想像してください。1つはorderBy「rating」、もう1つはorderBy「time」(ランダム属性)で、これらのドキュメントの1つが変更されます。 1回の更新で20回の読み取りを意味しますか?

何かが足りないか、消防署が自分の用途に適合していないか、アーキテクチャを変更する必要があるか、カウントを間違えました。

  1. 変更されたドキュメントを取得する方法はありますか?(firestoreがこれを行わない場合、無駄な読み取りを回避するために、明らかにキャッシュ、ローカルデータベース、およびタイムスタンプシステムを実装できます)

pubspec.yaml =>

firebase_database: ^4.0.0
firebase_auth: ^0.18.0+1
cloud_firestore: ^0.14.0+2

これは、本質的にはより一般的な「firestore」の質問であるため、iOSやAndroidなどのすべての環境におそらく当てはまりますが、flutterfireプラグインと関係がある場合に備えて、flutter / dartの例を使用しています。

前もって感謝します。

ルノー・セシャン

Q1:このクエリで1つのドキュメントのみが変更された場合でも、10のドキュメント読み取りがカウントされるのはこの場合ですか?

いいえ、ドキュメントに詳しく説明されています。

クエリの結果を聞くと[注:(またはコレクションまたはサブコレクション) ]、結果セット内のドキュメントが追加または更新されるたびに、読み取りに対して課金されます。また、ドキュメントが変更されたためにドキュメントが結果セットから削除された場合も、読み取りに対して課金されます。(対照的に、ドキュメントが削除された場合、読み取りの料金は請求されません。)

また、リスナーが30分を超えて切断された場合(たとえば、ユーザーがオフラインになった場合)、まったく新しいクエリを発行したかのように、読み取りに対して課金されます。[注:この例では、10回読み取ります。]

Q2:答えが「はい」の場合、次の質問...

Q1の答えは「いいえ」です:-)

Q3:変更されたドキュメントを取得する方法はありますか?

はい。クエリスナップショット全体を使用するのではなく、クエリスナップショット間でクエリ結果への実際の変更をキャッチする方法を説明しているドキュメントのこの部分を参照してくださいFlutterの場合は、docChangesプロパティを使用する必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Cloud Firestore-リアルタイムリスナーの更新は読み取り操作としてカウントされますか?

分類Dev

グローバルではなくリクエストごとにSquid接続|読み取り|書き込みタイムアウトを設定する方法

分類Dev

セレンを使用したウェブスクレイピングの学習を始めたばかりです。ローカルウェブサイトにログインして、いくつかのアイテムをダブルクリックする必要があります

分類Dev

F#クエリでCSV行を読み取るためのインデックスを割り当てます

分類Dev

Linuxでリアルタイムクロックを読み取るためにスーパーユーザー権限が必要なのはなぜですか?

分類Dev

Springセキュリティでセッションがタイムアウトしたときにリクエストで見つかった無効なCSRFトークンを処理するための最良の方法は何ですか

分類Dev

機械学習アルゴリズムはデータをトップダウンまたはボトムアップで読み取りますか?

分類Dev

MySQLでエントリのパーセンタイルスコアを見つけるための時間計算量はどれくらいですか?

分類Dev

サーバーとクライアントの両方でブロックすることなく、サーバーでリアルタイムに書き込まれているアップロードされたファイルのファイルサイズを読み取ってエコーする方法は?

分類Dev

クライアントリクエストを読み取るにはどうすればよいですか?

分類Dev

readOnlyプロパティがtrueの場合、Draft.jsエディターでカスタムレンダリングされたブロックを読み取り専用にするにはどうすればよいですか?

分類Dev

Cassandraでカウンターをインクリメントするときに「読み取り」が表示されるのはなぜですか?

分類Dev

いくつかのアイテムでフラットリストをフィルタリングする

分類Dev

遅い変更のルックアップを読み取り、ストリーミング入力コレクションを強化するための最良のアプローチはどれですか?

分類Dev

Node.js:Google Analytics API:「サービスアカウント」を使用して、承認された読み取り専用の管理APIリクエストを作成するにはどうすればよいですか?

分類Dev

連続するコンパイルの間にハードドライブからデータをより速く読み取るためのトリック

分類Dev

Python:12ビットのリトルエンディアンでパックされたデータをすばやく読み取って解凍する方法

分類Dev

S3バケットから画像(ファイル)をレンダリングする方法は、フロントエンドですべてのパブリックアクセスをブロックしました(プライベート書き込み、プライベート読み取り)

分類Dev

取得セマンティクスが書き込みではなく読み取り専用であるのはなぜですか?LL / SCがCASを取得するには、ストアがクリティカルセクションで再注文することなく、どのようにロックを取得できますか?

分類Dev

Djangoクエリセット内のアイテム数のカウントを取得するための最良の方法は何ですか?

分類Dev

Redmineファイルアップロードエラー-エラーでクライアントを切断しています:リクエスト本文の読み取りエラー:予期しないストリームの終わり(errno = -1004)

分類Dev

OkHttp3 SocketTimeoutException(Androidアプリ内)-非同期リクエストの読み取りタイムアウトを設定するにはどうすればよいですか?

分類Dev

カピバラでボタンクリックをテストするためのより良い、より速いアプローチは何ですか?

分類Dev

単一のSQLServerクエリでファントム読み取りを生成することは可能ですか?

分類Dev

Iinux OS(カスタムボード)で実行されているアプリケーションは、エクスポートされたLD_LIBRARY_PATHから共有ライブラリを読み取りません

分類Dev

Dartで文字列のストリームとしてファイルを読み取る:いくつのイベントが発行されますか?

分類Dev

bashスクリプトでファイルを読み取って追加するためのより良い方法はありますか

分類Dev

Bing Ads APIクイックスタート:Microsoftアカウントユーザーのみが使用できます。このリクエストを処理するには、/ consumersエンドポイントを使用してください

分類Dev

Atomエディターでスクリプトを実行したりコマンドを実行したりするためのカスタムキーバインディングを設定するにはどうすればよいですか?

Related 関連記事

  1. 1

    Cloud Firestore-リアルタイムリスナーの更新は読み取り操作としてカウントされますか?

  2. 2

    グローバルではなくリクエストごとにSquid接続|読み取り|書き込みタイムアウトを設定する方法

  3. 3

    セレンを使用したウェブスクレイピングの学習を始めたばかりです。ローカルウェブサイトにログインして、いくつかのアイテムをダブルクリックする必要があります

  4. 4

    F#クエリでCSV行を読み取るためのインデックスを割り当てます

  5. 5

    Linuxでリアルタイムクロックを読み取るためにスーパーユーザー権限が必要なのはなぜですか?

  6. 6

    Springセキュリティでセッションがタイムアウトしたときにリクエストで見つかった無効なCSRFトークンを処理するための最良の方法は何ですか

  7. 7

    機械学習アルゴリズムはデータをトップダウンまたはボトムアップで読み取りますか?

  8. 8

    MySQLでエントリのパーセンタイルスコアを見つけるための時間計算量はどれくらいですか?

  9. 9

    サーバーとクライアントの両方でブロックすることなく、サーバーでリアルタイムに書き込まれているアップロードされたファイルのファイルサイズを読み取ってエコーする方法は?

  10. 10

    クライアントリクエストを読み取るにはどうすればよいですか?

  11. 11

    readOnlyプロパティがtrueの場合、Draft.jsエディターでカスタムレンダリングされたブロックを読み取り専用にするにはどうすればよいですか?

  12. 12

    Cassandraでカウンターをインクリメントするときに「読み取り」が表示されるのはなぜですか?

  13. 13

    いくつかのアイテムでフラットリストをフィルタリングする

  14. 14

    遅い変更のルックアップを読み取り、ストリーミング入力コレクションを強化するための最良のアプローチはどれですか?

  15. 15

    Node.js:Google Analytics API:「サービスアカウント」を使用して、承認された読み取り専用の管理APIリクエストを作成するにはどうすればよいですか?

  16. 16

    連続するコンパイルの間にハードドライブからデータをより速く読み取るためのトリック

  17. 17

    Python:12ビットのリトルエンディアンでパックされたデータをすばやく読み取って解凍する方法

  18. 18

    S3バケットから画像(ファイル)をレンダリングする方法は、フロントエンドですべてのパブリックアクセスをブロックしました(プライベート書き込み、プライベート読み取り)

  19. 19

    取得セマンティクスが書き込みではなく読み取り専用であるのはなぜですか?LL / SCがCASを取得するには、ストアがクリティカルセクションで再注文することなく、どのようにロックを取得できますか?

  20. 20

    Djangoクエリセット内のアイテム数のカウントを取得するための最良の方法は何ですか?

  21. 21

    Redmineファイルアップロードエラー-エラーでクライアントを切断しています:リクエスト本文の読み取りエラー:予期しないストリームの終わり(errno = -1004)

  22. 22

    OkHttp3 SocketTimeoutException(Androidアプリ内)-非同期リクエストの読み取りタイムアウトを設定するにはどうすればよいですか?

  23. 23

    カピバラでボタンクリックをテストするためのより良い、より速いアプローチは何ですか?

  24. 24

    単一のSQLServerクエリでファントム読み取りを生成することは可能ですか?

  25. 25

    Iinux OS(カスタムボード)で実行されているアプリケーションは、エクスポートされたLD_LIBRARY_PATHから共有ライブラリを読み取りません

  26. 26

    Dartで文字列のストリームとしてファイルを読み取る:いくつのイベントが発行されますか?

  27. 27

    bashスクリプトでファイルを読み取って追加するためのより良い方法はありますか

  28. 28

    Bing Ads APIクイックスタート:Microsoftアカウントユーザーのみが使用できます。このリクエストを処理するには、/ consumersエンドポイントを使用してください

  29. 29

    Atomエディターでスクリプトを実行したりコマンドを実行したりするためのカスタムキーバインディングを設定するにはどうすればよいですか?

ホットタグ

アーカイブ