Firestore エミュレータのデータをローカル環境で import/export する


概要

Firebase エミュレータで Firestore の import/export ができるようになったので、導入方法について紹介します。これまで、エミュレータを再起動する度にデータが初期化されていていましたが、特定のタイミングで export して起動時に import できるので、毎回テストデータを取り込む作業がなくなるなど、開発効率が上がります。

導入方法

本機能は firebase-tools の 7.14.0 で対応したので、 firebase-tools を再インストールして firebase のバージョンが 7.14.0 以上であることを確認します。

npm install -g firebase-tools
firebase --version
7.14.0

以下のコマンドを叩いて Export コマンドのヘルプが正常に表示されれば OK です。

firebase emulators:export --help
Usage: firebase emulators:export [options] <path>

export data from running emulators

Options:
  --only <emulators>  only specific emulators. This is a comma separated list of emulator names. Valid options are: ["functions","firestore","database","hosting","pubsub"]
  --force             Overwrite any export data in the target directory.
  -h, --help          output usage information

実行方法

Firestore エミュレータのデータを export

firebase emulators:export コマンドで data ディレクトリ配下に export されます

firebase emulators:export ./data/

すでにデータがある場合には上書きするか確認されますが、毎回上書きで問題なければ --force オプションを指定します。

firebase emulators:export --force ./data/

Export されたデータを読み込んで Firestore エミュレータ起動

firebase emulators:start コマンドで --import オプションをつけて export 先の data ディレクトリを指定することで、データを読み込んで起動できます。

firebase emulators:start --import=./data --only firestore

必要に応じて、上記コマンドを package.json の scripts に追加したり(Web 開発の場合)、 data ディレクトリを .gitignore に追加しておきましょう。

まとめ

以上、 Firestore エミュレータデータの import/export 方法を紹介しました。

特定の検証ケースごと(インストール直後、チュートリアル直後、インストール翌日の起動時など)に export 先を分けると、よりデバッグが捗りそうですね。

関連記事