Firestoreの複合インデックスを削除する

公開日時

Firestoreで複数条件を指定したり、複数フィールドでのソートを行う場合、複合インデックスを作成する必要がある。

アプリケーション側の仕様変更で別の複合インデックスを利用することになり、古い複合インデックスを削除しようとしたところハマったので対応方法を残しておく。

Cloud Firestore でのインデックス管理  |  Firebase」のドキュメントを読むとFirebaseコンソールから削除できると書かれていたが、2021/8/2時点だと削除メニューを見つけられなかった。

firestore index

対応方法としてはfirebaseコマンドを使ってCLI経由で削除することができた。

  1. 既存のインデックスをローカルファイルとしてエクスポート。
yarn run -s firebase firestore:indexes > firestore.indexes.json
  1. firestore.indexes.json を編集し、不要になったインデックスを削除する

  2. インデックスをfirestoreにデプロイ

yarn run firebase deploy --only firestore:indexes

この時「ローカルファイルから消えているインデックスをFirestoreからも消して良いか?」と聞かれるので「y」を選択すれば、古い複合インデックスが削除される。

参考


Related #firebase

Firebase Web SDK v9

_this.auth.addAuthTokenListener is not a function

8.6.5にダウングレードした

Firebase Summit 2021

YouTubeの「Firebase Release Notes」プレイリスト

最新のアップデートの概要を把握するのにちょうど良い