概要
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 先を分けると、よりデバッグが捗りそうですね。