タイトルで全部言ってしまっているのですが、ハマったので同じハマり方をしている方の検索用にメモっておきます。
自分がぶつかったのはGCLOUD_PROJECT
でFirebaseのproject_idを取得して環境ごとに処理を切り分けたかったのですが、GCLOUD_PROJECT
が何故か参照できなかったという問題でした。
2019-08-20現在の情報なので、時間が経過している場合は必ず公式ドキュメントを当たるようにしてください。
TL;DR
- Node.js 10では
GCLOUD_PROJECT
/GOOGLE_CLOUD_PROJECT
は使えない - Node.js 10では
JSON.parse(process.env.FIREBASE_CONFIG)["projectId"]
を使う GCLOUD_PROJECT
はdeprecatedなのでGOOGLE_CLOUD_PROJECT
を使う
Node.js 6, Node.js 8, Python 3.7 and Go 1.11かNode.js 10で変わる
公式ドキュメントに記載があるのですが、Runtimeによって参照できる環境変数に違いがあります。
一応、現時点での参照できる環境変数の違いです。
Node.js 6, Node.js 8, Python 3.7 and Go 1.11
Node.js 10
Node.js 10を使う場合はFIREBASE_CONFIG
を参照する
Node.js 10ではFirebaseのproject_idを確認できる環境変数がなく、「どうしたらいいの?」と思ったのですが、FIREBASE_CONFIG
はRuntimeによらず参照できるようです。
FIREBASE_CONFIG
はString形式で入っているのでJSON.parse(process.env.FIREBASE_CONFIG)["projectId"]
のように参照しましょう。
{ databaseURL: 'https://databaseName.firebaseio.com', storageBucket: 'projectId.appspot.com', projectId: 'projectId' }
GCLOUD_PROJECT
はdeprecated
もう一点、調べていて気付いたのですが、GCLOUD_PROJECT
はdeprecatedになっているようです。代わりにGOOGLE_CLOUD_PROJECT
を使いましょう。
下のIssueに上がっている通り、公式ドキュメント内でも古くなっている部分があるので注意が必要です。
さいごに
ドキュメント読んでいきましょう。