LoginSignup
5

More than 3 years have passed since last update.

Firebase Cloud Functionsでデフォルトで使える環境変数

Last updated at Posted at 2019-12-10

2020/12/10追記
Node.js 12系や10系のGA版の情報は以下URLよりご確認ください!
https://zenn.dev/moga/articles/firebase-functions-env-vars

前提

  • 2019/12/09現在の情報です
  • Firebase Cloud Functions
    • GCPのCloudFunctionsではない
  • Runtime Node.js 10
    • Node.js 10はBetaなのでご注意を

TL;DR

  • Nodejs 8で取れてた環境変数が10系だと取れない可能性があるので気をつけよう
  • Nodejs 10ではこいつらが使えるぞ

ドキュメント

環境変数とは

Node.jsだと process.env で取れるやつの話です。こいつは、FirebaseやGCP側が予め設定しておいてくれる変数が存在します。
下記のようにすれば自分でも設定できます。

firebase functions:config:set someservice.key="THE API KEY" someservice.id="THE CLIENT ID"

経緯

使える環境変数一覧

実際にNode.js 10のRuntimeでFirebase Cloud Functionsをデプロイして、process.env の中身を書き出してみました。 デプロイ時の関数名はSampleFunction、regionはasia-northeast1です。一部***でマスクしてます。あくまで2019/12/09現在で取れたものなので、今後取れなくなる可能性があります。

{
  "NO_UPDATE_NOTIFIER": "true",
  "FUNCTION_TARGET": "SampleFunction",
  "NODE_OPTIONS": "--max-old-space-size=256",
  "NODE_ENV": "production",
  "PWD": "/srv/functions",
  "HOME": "/root",
  "DEBIAN_FRONTEND": "noninteractive",
  "PORT": "8080",
  "K_REVISION": "2",
  "K_SERVICE": "SampleFunction",
  "SHLVL": "1",
  "FUNCTION_SIGNATURE_TYPE": "http",
  "PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
  "OLDPWD": "/srv",
  "_": "../start-functions-framework",
  "FIREBASE_CONFIG": "{\"projectId\":\"***\",\"databaseURL\":\"***\",\"storageBucket\":\"***.appspot.com\",\"locationId\":\"asia-northeast1\"}",
  "GCLOUD_PROJECT": "***",
  "VIPSHOME": "/target"
}

ドキュメントに書いてあるとおり、いろいろ取れなくなったり名前が変わったりしています。 GCP側のドキュメントには GCLOUD_PROJECT はセットしないって書いてありますが、ここに書いてあるとおりFirebase側がセットしてくれているようです。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5