🗂

Firebase CLIを使ってFirestoreのTTLポリシーを管理する

2023/12/07に公開

はじめに

FirestoreのTTLポリシーを使うと特定のコレクショングループ内のドキュメントを自動で削除することができます。
本稿ではFirebase CLI利用して、FirestoreのTTLポリシーをデプロイする方法を記載します。

※ Firebase CLIはv11.18.0からTTLをサポートしています。
https://github.com/firebase/firebase-tools/releases/tag/v11.18.0

Firebase CLIでTTLポリシーを作成する

まず、firestore.indexes.json のようなJSONファイルを作成します。フォーマットは以下のようになります。

{
  "indexes": [],
  "fieldOverrides": [
    {
      "collectionGroup": "TestCollection",
      "fieldPath": "ExpireAt",
      "ttl": true,
      "indexes": [
        {
          "order": "ASCENDING",
          "queryScope": "COLLECTION"
        },
        {
          "order": "DESCENDING",
          "queryScope": "COLLECTION"
        },
        {
          "arrayConfig": "CONTAINS",
          "queryScope": "COLLECTION"
        }
      ]
    }
  ]
}

firebase CLIからデプロイする際に使うインデックスファイルの場所を指定するために、firebase.jsonに以下を記載します。

{
  "firestore": {
    "indexes": "./firestore.indexes.json"
  }
}

上記の2ファイルを作った状態で以下のコマンドを実行するとTTLポリシーがデプロイされます。

 firebase --config ./firebase.json deploy --only firestore:indexes

作成したTTLポリシーを取得

作成したTTLポリシーは以下で取得することができます。
また、コンソール画面から追加したポリシーも取得できるので、jsonファイル管理に移行することができます。

firebase firestore:indexes

参考

Discussion