参加者を含むチャットを検索するための Firebase クエリ
背景:
下のデータ構造考慮事項は、チャットに参加者とチャット アイテムが存在するチャット システムを表します。目的は、「チャット」テーブルをクエリして、指定されたユーザー名文字列に基づいて特定の参加者がいるすべてのチャットを取得することです。
初期試行:
提供されたコードorderByChild メソッドとqualTo メソッドを使用して、一致するユーザー名を指定して「参加者」の子によって「チャット」テーブルをクエリしようとします。ただし、このアプローチには限界があります。
逆インデックスのアプローチ:
これらの制限に対処するには、「userChatrooms」を作成してデータ構造を反転することをお勧めします。ユーザーをそのユーザーが参加しているチャット ルームにマップする「 ノード」。これにより、効率的なフィルタリングが可能になります。ユーザー:
逆索引を使用したクエリ:
逆索引構造を使用すると、ユーザーのすべてのチャットを簡単に見つけることができます:
クラウド Firestore代替案:
Cloud Firestore は、array-contains 演算子を使用してこのタイプのクエリをより適切にサポートします。これにより、配列内の特定の値を含むドキュメントを直接フィルタリングできます:
以上が特定の参加者が含まれるチャットについて Firebase または Firestore に効率的にクエリを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。