Firexportガイド
Firestore のセキュリティ ルールとインデックスをエクスポートする方法
Firebase コンソールは Firestore のセキュリティ ルールをエディタに、インデックスを表に表示しますが、どちらもファイルとして保存するボタンはありません。Firebase CLI がデプロイするファイルは firestore.rules と firestore.indexes.json です。これらを取り出す方法は 3 つあります。どれが合うかは、プロジェクト フォルダからデプロイしているかどうかと、ルールのどのバージョンが必要かによります。
2026年10月27日 更新。 方法 1 の拡張機能 Firexport は私たちのものです。方法 2 と 3 には不要です。
結論から言うと
| 1. コンソール + 拡張機能 | 2. Firebase CLI | 3. コンソールからコピー | |
|---|---|---|---|
| 準備 | Chrome 拡張機能をインストール | Node.js と Firebase CLI | なし |
| ルール | firestore.rules(無料) | firestore.rules | ファイルに貼り付ける |
| 過去のバージョンと下書き | はい(エディタに表示されているもの) | いいえ(最後に公開されたルール) | はい |
| インデックス | 表を JSON で(無料)。Advanced では firestore.indexes.json | firestore.indexes.json | いいえ |
1. Firexport で Firebase コンソールからエクスポート
Firexport は、Firestore のルール(Rules)タブとインデックス(Indexes)タブにエクスポート ボタンを追加する無料の Chrome 拡張機能です。サインインは不要で、データベースからは何も読み取りません。Firexport は、コンソールがすでに表示しているものを保存します。
セキュリティ ルール
- Chrome ウェブストアから Firexport をインストールします。
- Firebase コンソールで Firestore Database > ルール(Rules)を開きます。
- 過去のバージョンをエクスポートするには、左の一覧でそのバージョンを選びます。エディタ上でまだ公開していない変更は、現在の状態のままエクスポートされます。
- エディタの上のバーの右端にあるエクスポートをクリックします。Firexport がエディタのテキストを
firestore.rulesとして保存します。
ファイルの中身は、コメントや空行も含めて、エディタの内容とバイト単位でまったく同じです。ルールのエクスポートはどのプランでも無料です。

インデックス
- Firestore Database > インデックス(Indexes)を開きます。
- インデックスを追加(Add index)の横にあるエクスポートをクリックします。
- 無料版では、Firexport は表示中の表を、全ページ分まとめて JSON として保存します。手動(Manual)の表は複合インデックス、自動(Automatic)の表は単一フィールドの除外です。コンソールに表示されているとおりの表なので、
firebase deployでは読み込めず、ファイル名もfirestore.indexes.jsonではありません。 - Advanced では、Firexport は
firestore.indexes.jsonを保存します。どちらの表を表示していても、複合インデックスとフィールドのオーバーライドをまとめて、firebase firestore:indexesが出力する形式で書き出します。名前付きデータベースでは、ファイル名はfirestore.<database>.indexes.jsonになります。 - CLI のファイルとの違いが 1 つあります。TTL ポリシーがあり、インデックスの除外がないフィールドは含まれません。コンソールがそうしたフィールドを読み込まないためです。

Firebase CLI をインストールせずに、Firestore のルールとインデックスをコンソールからエクスポートしましょう。
2. Firebase CLI でダウンロード
Firebase CLI は、フォルダに Firestore を設定するときに両方のファイルを書き出します。firebase init firestore が、プロジェクトにデプロイされているルールとインデックスをダウンロードします。インデックスだけなら、firebase firestore:indexes が firestore.indexes.json を出力します。どちらも無料で、Node.js が必要です。
npm install -g firebase-tools
firebase login
# Rules and indexes, into firestore.rules and firestore.indexes.json
firebase init firestore
# Or only the indexes
firebase firestore:indexes --project your-project-id > firestore.indexes.jsoninitはプロジェクトとファイル名を尋ね、それらのファイルを指すfirebase.jsonを書き出します。ダウンロードされるのは最後に公開されたルールで、過去のバージョンや未公開の下書きではありません。(default)以外のデータベースでは、firestore:indexesに--database <id>を付けます。initはどのデータベースを設定するかを尋ねますが、ルールはデータベース名を指定せずに取得するので、firestore.rulesが意図したデータベースのものか確認してください。
3. コンソールからルールをコピー
現在のルールを一度取り出すだけなら、コンソールで足ります。Firestore Database > ルール(Rules)を開き、エディタ内をクリックして Ctrl+A(Mac では ⌘A)ですべて選択してコピーし、firestore.rules という名前のファイルに貼り付けます。過去のバージョンをコピーするには、先に左でそのバージョンを選びます。
インデックスにはこうした近道がありません。インデックス(Indexes)タブはテキストではなく表なので、ファイルにするには各インデックスを firestore.indexes.json に手で書き込むことになります。
ファイルをデプロイし直す
どちらのファイルも、それらの名前を記した firebase.json(firebase init firestore が書き出すもの)と同じフォルダに置きます:
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
}
}そのあと firebase deploy --only firestore を実行します。片方だけなら firestore:rules か firestore:indexes にします。
- ファイルにないインデックスがプロジェクトにある場合、CLI はそれらを表示し、削除する前に確認します。
--forceを付けると確認せずに削除します。ファイルにない TTL ポリシーは削除されません。 - 同じルールとインデックスを別のプロジェクトに、たとえば本番からステージングにデプロイするには、
--projectを付けます。 - デプロイしたルールはすべてのクライアントにすぐ適用されるので、変更はまず Firestore エミュレータで試してください。
FAQ
Firebase コンソールから Firestore のセキュリティ ルールをダウンロードできますか?
ボタンではできません。ルール(Rules)タブはルールをエディタに表示するので、そこからコピーできます。firebase init firestore はルールを firestore.rules にダウンロードし、Firexport のようなブラウザ拡張機能は、ルールを firestore.rules として保存するエクスポート ボタンを追加します。
Firestore のインデックスを firestore.indexes.json にエクスポートするには、どうすればよいですか?
Firebase CLI で firebase firestore:indexes > firestore.indexes.json を実行するか、Firexport Advanced でインデックス(Indexes)タブからファイルをエクスポートします。どちらも、複合インデックスとフィールドのオーバーライドを firebase deploy が読み込む形式で書き出します。
Firestore のインデックスを別のプロジェクトにどうコピーしますか?
元のプロジェクトから firestore.indexes.json をエクスポートし、もう一方のプロジェクトの ID を指定して firebase deploy --only firestore:indexes --project を実行します。新しいインデックスはバックグラウンドで作成され、それを必要とするクエリは、インデックスが有効(Enabled)と表示されるまで失敗します。
Firestore のルールの過去のバージョンを取得できますか?
はい、コンソールから取得できます。ルール(Rules)タブの左に過去のバージョンが並んでいるので、1 つを選んで表示し、コピーするか Firexport でエクスポートします。firebase init firestore がダウンロードするのは、最後に公開されたルールだけです。
ルールやインデックスをエクスポートすると、Firestore の読み取りが発生しますか?
いいえ。ルールとインデックスの定義はドキュメントではないので、コンソール、CLI、Firexport のどれで保存しても、データベースからは何も読み取りません。
