ホームページ > ウェブフロントエンド > jsチュートリアル > 特定の参加者が含まれるチャットについて Firebase または Firestore に効率的にクエリを実行するにはどうすればよいですか?

特定の参加者が含まれるチャットについて Firebase または Firestore に効率的にクエリを実行するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-19 16:17:13
オリジナル
110 人が閲覧しました

How to Efficiently Query Firebase or Firestore for Chats Containing a Specific Participant?

参加者を含むチャットを検索するための Firebase クエリ

背景:

下のデータ構造考慮事項は、チャットに参加者とチャット アイテムが存在するチャット システムを表します。目的は、「チャット」テーブルをクエリして、指定されたユーザー名文字列に基づいて特定の参加者がいるすべてのチャットを取得することです。

初期試行:

提供されたコードorderByChild メソッドとqualTo メソッドを使用して、一致するユーザー名を指定して「参加者」の子によって「チャット」テーブルをクエリしようとします。ただし、このアプローチには限界があります。

  • 参加者は配列として保存されます。 このデータ構造は、チャットの参加者が一意である必要があるという事実を正確に反映していません。
  • インデックス作成の制限: Firebase では、ネストされたパスをクエリするために事前定義されたインデックスが必要です。動的データを扱うときは面倒です。

逆インデックスのアプローチ:

これらの制限に対処するには、「userChatrooms」を作成してデータ構造を反転することをお勧めします。ユーザーをそのユーザーが参加しているチャット ルームにマップする「 ノード」。これにより、効率的なフィルタリングが可能になります。ユーザー:

逆索引を使用したクエリ:

逆索引構造を使用すると、ユーザーのすべてのチャットを簡単に見つけることができます:

クラウド Firestore代替案:

Cloud Firestore は、array-contains 演算子を使用してこのタイプのクエリをより適切にサポートします。これにより、配列内の特定の値を含むドキュメントを直接フィルタリングできます:

以上が特定の参加者が含まれるチャットについて Firebase または Firestore に効率的にクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート