メインコンテンツまでスキップ

Emulate

firebaseの仕組みをローカルで実行できる emulatorsではfirestoreとfunctionsは初期化が別で必用。 そのため、firebase initではfirestoreとfunctionsを選択すること

$ firebase init FirestoreとEmulatorsを選択

Cloud FunctionsやHostingを起動するためにはそれぞれの初期化が必要となります

$ firebase emulators:start emulators:startコマンドはローカルプロジェクトで firebase init を使用して初期化したプロダクトに基づいて、Cloud Functions、Cloud Firestore、Realtime Database、Firebase Hostingのエミュレータを起動する。

特定のエミュレータを起動する場合は --onlyフラグを使用する $ firebase emulators:start --only functions

ロギング

エミュレータは関数からのログを実行中のターミナル ウィンドウにストリーミングします。関数内のconsole.log()、console.info()、console.error()、console.warn() のステートメントからの出力がすべて表示されます。


データの保存と読み込み(インポート、エクスポート)

基本的にデータはエミュレーター終了と共に破棄されるが、保存して同じ内容を読み込みなおしたりもできる。

手動でアプリの挙動を試しまくるときとか E2E の試験とかで役立つと思います。

保存(エクスポート)

エミュレーターが起動している状態で、別のターミナルから以下を叩く $ npx firebase emulators:export path/to/export 指定のディレクトリー配下にファイルが出力されます。JSONかと思ったらバイナリ

読み込み(インポート)

エミュレーターを起動する際に --importオプションを加え、エクスポートしたディレクトリーを指定します。 $ npx firebase emulators:start --import=path/to/export

自動保存

--export-on-exitオプションを与えるとエミュレーター終了時に自動で保存というのもできます。アプリを動かしながら試行錯誤するときに便利。