Cloud Firestore でのインデックス管理

Cloud Firestore で最高のパフォーマンスを実現するには、すべてのクエリにインデックスが必要です。すべてのドキュメント フィールドにインデックスが自動的に作成されるため、equality 句のみを使用するクエリの場合には、インデックスを改めて作成する必要はありません。一方、既存のインデックスに対応しない range 句で複合クエリを実行すると、エラーが発生します。このエラー メッセージに含まれている Firebase コンソールのリンクを使用すると、不足しているインデックスを作成できます。

Firebase コンソールへのリンクをクリックして、自動的に入力された情報を確認し、[作成] をクリックします。

Firebase コンソールを使用する

Firebase コンソールから手動で新しいインデックスを作成するには:

Firebase コンソールでインデックスを作成するインターフェースのイメージ

  1. Firebase コンソールの [Database] セクションに移動します。
  2. [インデックス] タブに移動し、[インデックスを追加] をクリックします。
  3. コレクション名を入力し、インデックスを並べ替えるフィールドを設定します。[作成] をクリックします。

クエリのサイズによっては、インデックスの作成に数分かかることがあります。完了すると、[複合インデックス] セクションにインデックスとその状態が表示されます。作成中の場合、Firebase コンソールにステータスバーが表示されます。

Firebase CLI を使用する

Firebase CLI を使用してインデックスをデプロイすることもできます。最初に、プロジェクト ディレクトリで firebase init firestore を実行します。設定中に、デフォルトのインデックスが正しい形式で含まれている JSON ファイルが Firebase CLI により生成されます。ファイルを編集してインデックスを追加し、firebase deploy コマンドでこのファイルをデプロイします。インデックスだけをデプロイする場合は、--only firestore:indexes フラグを追加します。Firebase コンソールでインデックスを編集する場合は、必ずローカル インデックス ファイルも更新してください。

インデックスを削除する

インデックスを削除するには:

  1. Firebase コンソールの [Database] セクションに移動します。
  2. [インデックス] タブをクリックします。
  3. 削除するインデックスにカーソルを合わせ、コンテキスト メニューから [削除] を選択します。
  4. アラートの [削除] をクリックして、削除を確定します。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。