firebase functionsをローカルでテストする際に環境変数をローカルと本番環境で一致させる方法
firebase functionsにデプロイした関数をテストするたびに
firebase deploy –only functions
を実行し、デプロイが完了するまで待つのは大変時間がかかるので、基本的には
firebase emulators:start
でローカル環境で実行する。
データベース接続処理などを行う場合、一般的にはfirebaseの環境変数に
firebase functions:config:set database_password=”*****”
等でコンソールから保存した内容をコード上で
functions.config().database_passwordといった具合で参照するが、これは本番環境でしか使用できない。
したがってエミュレーターでローカルでテストしたい場合には別途.envファイルをfunctionsフォルダ内に作成してテスト環境用に別のコードで.envを参照していたが、画期的な方法があったのでメモ
firebase functions:config:get > .runtimeconfig.json
上記コマンドを実行することで、firebase functionsに保存していた環境変数がローカルのカレントディレクトリに.runtimeconfig.jsonというファイルで保存される。
そしてfirebase emulators:start –import=.runtimeconfig.jsonでエミュレーターを実行することにより、本番環境と同じコードで環境変数を参照することができる。