GUIDE
Firestore のデータを CSV でエクスポートする3つの方法
「Firestore のデータを Excel やスプレッドシートで見たい」は、運用が始まると必ず出てくる要望です。 ところが Firebase コンソールには CSV エクスポート機能がありません。この記事では、実際に使える 3つの方法を、それぞれの落とし穴と一緒に紹介します。
方法0: Firebase コンソール・gcloud では「できない」
まず前提の整理です。
- Firebase コンソールにエクスポート機能はありません(1件ずつ目視のみ)
gcloud firestore exportはバックアップ用のバイナリ形式(LevelDB)で出力されるため、 そのままでは Excel やスプレッドシートで開けません。BigQuery に読み込めば SQL で触れますが、 「ちょっと CSV がほしい」には大げさです
方法1: Node.js スクリプトを書く(無料・要コード)
firebase-admin を使えば数十行で書けます。最小構成の例です。
import { initializeApp, cert } from "firebase-admin/app";
import { getFirestore } from "firebase-admin/firestore";
import { writeFileSync } from "node:fs";
initializeApp({ credential: cert("./serviceAccount.json") });
const db = getFirestore();
const snap = await db.collection("users").get();
const rows = snap.docs.map((d) => ({ id: d.id, ...d.data() }));
// ヘッダーは全ドキュメントのキーの和集合から作る(欠損フィールド対策)
const headers = [...new Set(rows.flatMap((r) => Object.keys(r)))];
const esc = (v) => `"${String(v ?? "").replace(/"/g, '""')}"`;
const csv = [
headers.join(","),
...rows.map((r) => headers.map((h) => esc(r[h])).join(",")),
].join("\n");
writeFileSync("users.csv", "\uFEFF" + csv); // BOM を付けると Excel で文字化けしないシンプルに見えますが、実運用では次の罠を踏みます。
- Timestamp / GeoPoint / Reference 型はそのまま文字列化すると
[object Object]になる。型ごとの変換処理が必要 - ネストしたマップや配列をどう平坦化するか(
address.cityのようなドット記法にするか、JSON 文字列で埋めるか)を決める必要がある - 再インポートすると型が壊れる。CSV には型情報がないため、
25が string だったのか number だったのかが失われます - 数万件を超えるコレクションではページネーション(カーソル)処理が必要
1回きりの用途ならスクリプトで十分です。毎週・毎月やるなら、次の方法を検討してください。
方法2: GUI ツールでエクスポートする(ノーコード)
筆者が開発している Firescope(Firestore GUI クライアント、Mac / Windows)では、 表示中のグリッド(フィルタ・ソートを反映した状態)をそのまま CSV に書き出せます。
- 型注釈行つき CSV — 各列の型(string / int / timestamp …)をヘッダー直下に 出力するため、再インポートしても型が崩れません(Excel で編集 → 戻す往復が安全)
- Timestamp は読める日時文字列に、ネストは自動でフラット化
- クエリ・フィルタ結果だけの部分エクスポートも可能
- 逆方向(CSV → Firestore へのインポート)も、ドライラン付きのウィザードで実行できます

CSV エクスポートは無料版(トライアル終了後)でも使えます。 スクリプトを書かずに済ませたい方はこちらが最短です。
まとめ: どの方法を選ぶべきか
- 1回だけ・エンジニアが自分で使う → Node.js スクリプト
- BigQuery で分析までしたい → gcloud export + BigQuery
- 定期的に必要・チームの非エンジニアも使う・再インポートもしたい → GUI ツール(Firescope)
14日間、全機能を無料で試す
登録不要・支払い情報不要。CSV エクスポートは期限後も無料で使えます。
Firescope をダウンロード(Mac / Windows)