Cloud Functions for Firebaseで環境変数を利用して処理を分岐させる
Cloud Functions for Firebaseでは、
$ firebase functions:config:set 任意.任意="任意"
という形で環境変数を設定できるので、それを利用して環境切替えを行います。
$ firebase functions:config:get
で現在設定されている環境変数を確認できます。
Functionsの環境変数を変更した後は、再度Functionsをデプロイする必要があります。
手順
Functionsの処理内で環境変数によって、処理を切り替える
import * as functions from 'firebase-functions'; import * as firebase from 'firebase-admin' firebase.initializeApp({}); export const helloWorld = functions.https.onRequest((request, response) => { if (functions.config().env.id === 'prod') { response.send("Hello from Firebase Production!"); } else { response.send("Hello from Firebase Development!"); } });
firebase-tools
のコマンドで環境変数を設定する
# 現在の環境変数を確認する $ firebase functions:config:get # 環境切替え用の環境変数を設定する ( テスト環境に切り替える ) $ firebase functions:config:set env.id="dev" # 環境変数が変更されたかを確認する $ firebase functions:config:get { "env": { "id": "dev" } }
Functionsをデプロイする
$ firebase deploy --only functions
Functionsを呼び出す
$ curl https://us-central1-xxxxx-xxxxx.cloudfunctions.net/helloWorld Hello from Firebase Development!
本番環境への切り替えも試す
# 本番環境へ切り替える $ firebase functions:config:set env.id="prod" # 再デプロイする $ firebase deploy --only functions # Functionsを呼び出す $ curl https://us-central1-xxxxx-xxxxx.cloudfunctions.net/helloWorld Hello from Firebase Production!
追記 (2019.05.25)
@sgr-ksmt さんから指摘を頂き、タイトルと不相応な記事内容と気づいたので、タイトルを変更しました。
変更前タイトル Cloud Functions for Firebase で テスト環境と本番環境を切り替える
テスト環境と本番環境の切り替えについては、別途記事を書きます。