目次
Firestore コレクション内のドキュメント数の取得
ホームページ Java &#&チュートリアル Firestore コレクション内のドキュメントを効率的にカウントするにはどうすればよいですか?

Firestore コレクション内のドキュメントを効率的にカウントするにはどうすればよいですか?

Nov 19, 2024 pm 06:03 PM

How to Efficiently Count Documents in a Firestore Collection?

Firestore コレクション内のドキュメント数の取得

はじめに

Firebase Firestore には、コレクションのドキュメント数を取得します。ただし、最近のアップデートと Firestore の新機能の導入により、これを実現するための複数のアプローチがあります。

New count() メソッド

10 月 20 日現在, 2022 年、Firestore は、実際のコンテンツを読まずにドキュメントをカウントできる新しい count() メソッドを提供します。クエリに一致するドキュメントをカウントするクエリを返します。 count() などの集計クエリの場合、クエリと一致する最大 1000 個のインデックス エントリのバッチごとに 1 つのドキュメントの読み取りに対して課金されます。

分散カウンター

オン2021 年 7 月 10 日、Firebase は Distributed Counter 拡張機能を導入しました。ビュー、いいね、シェアなどの高速アクションを追跡するアプリケーション向けに調整された、拡張性の高いカウンター サービスを提供します。この拡張機能を使用すると、1 秒あたり 1 回の書き込み操作の最大制限を克服できます。

ドキュメント数カウントのコード例

1. count() メソッドの使用

Query countQuery = db.collection("Posts")
                     .whereEqualTo("status", "published");

Task<QuerySnapshot> task = countQuery.get();
task.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
    @Override
    public void onComplete(@NonNull Task<QuerySnapshot> task) {
        if (task.isSuccessful()) {
            int count = task.getResult().size();
            Log.d("TAG", count + "");
        } else {
            Log.d(TAG, "Error getting documents: ", task.getException());
        }
    }
});
ログイン後にコピー

2.レガシー アプローチの使用

db.collection("Posts")
   .get()
   .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
       @Override
       public void onComplete(@NonNull Task<QuerySnapshot> task) {
           if (task.isSuccessful()) {
               int count = 0;
               for (DocumentSnapshot document : task.getResult()) {
                   count++;
               }
               Log.d("TAG", count + "");
           } else {
               Log.d(TAG, "Error getting documents: ", task.getException());
           }
       }
   });
ログイン後にコピー

その他の考慮事項

レガシー アプローチの制限:

レガシー アプローチの使用小規模なデータセットの場合はうまく機能しますが、大規模なデータセットの場合はドキュメントごとに読み取り操作が必要になるため、非効率的になる可能性があります。

分散カウンターの精度:

クラウド関数は書き込み時のベストエフォート。つまり、カウンターの更新にわずかな遅れが生じる可能性があり、特にデータセットが大きい場合や書き込み負荷が高い場合には、すぐには正確ではない可能性があります。

結論

新しい count() メソッドは、Firestore コレクション内のドキュメントをカウントする便利でパフォーマンスの高い方法を提供します。即時更新とスケーラビリティを備えたカウンターが必要な場合は、分散カウンター拡張機能の使用を検討してください。

以上がFirestore コレクション内のドキュメントを効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)