Skip to content

Cloud Functions for Firebaseで環境変数を利用して処理を分岐させる

Posted on:2019年5月25日 at 00:00

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