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

SharedArrayBuffer updates in Android Chrome 88 and Desktop Chrome 92

クロスオリジン分離対応を実施

Firebase Emulator Suiteで起動しているFunctionsから本番のFirestoreにアクセスする

functionsのみエミュレータを使うようにするとできる

Firebase Functions呼び出し時に Error: function terminated. が発生した場合

firebase functions:logで詳細を確認できる

Cloud BuildでFirebase Hostingのデプロイを行う

リポジトリへのpush以外をトリガーにしたい場合に使用

Firebase FunctionsでonCallで実装しているにも関わらずCORSエラーが発生した場合

Cloud Functions(GCP)の管理画面を確認してみる

JestでFirestoreセキュリティルールのテストを書く

Github ActionsでCIを回せるようになった