firebase emulator の GOOGLE_APPLICATION_CREDENT を正しく読み込まなかったら
対象読者
この記事は、vscodeのターミナルではfirebase emulatorのGOOGLE_APPLICATION_CREDENTIALを正しく読み込まなくなる現象についての備忘録です。
vscodeを使っていて、GCPの使いたいAPIを有効にしているのに何故かenableと表示される場合も
この記事は有効かもしれません。
vscodeのターミナルって便利ですよね〜
便利なのでほとんどのコマンドをターミナルで起動させがちですが
firebase emulatorを使う場合は、うまくいかない場合があります
問題
複数プロジェクトでfirebase emulatorを扱う場合では、emulator起動前に GOOGLE_APPLICATION_CREDENTIAL を設定し、emulator上で使われるサービスアカウントを指定しますが
vscodeのターミナルでGOOGLE_APPLICATION_CREDENTIALを設定しても
emulatorに正しく読み込まれず指定したサービスアカウントで実行されない事象が発生します
解決策
export GOOGLE_APPLICATION_CREDENTIAL="CREDENTIAL_filepath"
この記述はvscodeのターミナルで行わず
PC標準のターミナルで行うことです!!!!!
そのターミナルでemulator起動すると適切なサービスアカウントでemulatorが実行されます!!
原因
exportをしてサービスアカウントを指定するとドキュメント等で見ますが
exportは、そのターミナルでの一時的な変数なのでvscodeのターミナルは頭が良いが故に、単一のターミナルで実行せずGOOGLE_APPLICATION_CREDENTIALを設定してないターミナルで実行してしまうため
emulator起動できても、直前に指定した正しいサービスアカウントを読み込むことができず
API等のエラーが出てしまうのだと考えられます
この記事で、本質じゃないつまらないところで転んでしまう人が少しでもいなくなりますように〜〜〜
この記事が参考になれば必ず絶対にツイッターをフォローしてください!!!!!
Discussion