Goでfirebaseエミュレータを使い安全にテストする方法
2022年03月14日 4:53
先日実務でGoとfirebaseエミュレータを使ったテストを実装しようとしたのですが、Goが組み合わさるとあまり記事が見当たりませんでした。そこで今回はGoでfirebaseエミュレータを実装する方法をご紹介します。
firebaseを利用しているのでFirebase CLIはインストール済みである前提とします。次にエミュレータをインストールします。公式に手順が記載されています。
バージョン確認
インストールにはCLI バージョン 8.14.0以降が必要なため確認。
初期化
エミュレータを利用するように指定して現在の作業ディレクトリを Firebase プロジェクトとして初期化します。
今回はAuthenticationとFirestoreを利用するのでこんな感じになります。
firebase.json
は手動で編集しても問題ないので、portを変更したくなったら直接編集しても構いません。
ちなみにデフォルトで提供されているエミュレータのportは以下です。
今回は詳しく扱いませんが、セキュリティルールの設定もfirebase.json
で設定することが可能です。詳しくは詳しくはセキュリティ ルールの構成でご確認ください。
それでは実際にエミュレータを起動してみましょう!下記コマンドを入力してください。
以下のように起動すれば成功です!
ターミナル1
エミュレータ起動時にロギングされるファイルはGithubなどにあげる必要はないので、.gitignore
ファイルに追加しておきましょう。
port4000で指定しているのでhttp://localhost:4000/
でアクセスできます。
エミュレータ一覧画面
どのエミュレータが起動しているのか確認できます。
Authentication emulator
Firestore emulator
adminSDKを利用している場合、エミュレータへfitebaseの参照先をエミュレータに変えるにはそれぞれのサービスごとの環境変数を指定する必要があります。各サービスとエミュレータに接続するために指定すべき変数は下記になります。
Authエミュレータを使うにはGo admin SDKをv4
にあげる必要があります
Goのadmin SDKライブラリであるfirebase-admin-goではAuthenticationエミュレータの接続先環境変数のFIREBASE_AUTH_EMULATOR_HOST
がV4.2.0で認識されるようになりました。上げていない方はfirebase-admin-go
のバージョンを事前にv4に上げておきましょう。
環境変数 | |
---|---|
Authentication | FIREBASE_AUTH_EMULATOR_HOST✅ |
Realtime Database | FIREBASE_DATABASE_EMULATOR_HOST |
Cloud Firestore | FIRESTORE_EMULATOR_HOST✅ |
Cloud Storage | FIREBASE_STORAGE_EMULATOR_HOST |
今回はAuthとFirestoreのエミュレータに接続したいので✅ 部分をテストを実行するディレクトリで指定します。
ターミナル2
ターミナル1ではエミュレータを起動しているのでターミナル2で環境変数の設定を行います。
ターミナル2
向き先を変えたら、あとはいつも通りGoのテストを実行してみましょう!作成・削除・更新などの処理が反映されると思います🎉
今回はGoでfirebaseでエミュレータを利用する方法を書きました。今後はエミュレータをStorageやFunctionsに接続した記事も実装してまたご紹介できればと思います。
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。
目次を見る