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 で テスト環境と本番環境を切り替える
テスト環境と本番環境の切り替えについては、別途記事を書きます。