📝

FirebaseのFunctionsでJSONから環境変数を設定する

1 min read

やりたいこと

https://firebase.google.com/docs/functions/config-env

Cloud Functions for Firebasefunctions:config:setで環境変数をセットすることができる。

が、一つずつ設定するとめんどくさいので、JSONから設定してしまおうという話。

まずは取得する

cd functions
firebase functions:config:get > .runtimeconfig.json

これで.runtimeconfig.jsonがクラウドと同期する。(gitignoreを忘れずに!)

追加してみよう

{
  "client": {
    "auth": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  }
}

例えば、こんなJSONがあったとして

{
  "client": {
    "auth": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
  },
  "twitter": {
    "token": "YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY"
  }
}

こんな感じで、ローカルから鍵を追加するとする。(エミュレータはこれで動く)

で、これを本番に適用するのが面倒なので...

https://medium.com/@AllanHasegawa/setting-config-for-firebase-cloud-functions-with-json-136f455e7c69

https://gist.github.com/AllanHasegawa/bf5f0a6ec2cfd936bce46a8234c4b5b0#file-parser-js

こちらのAllan Yoshio Hasegawaさんのスクリプトを使うことにした。

上記記事のparser.jsfunctionsに置いて、

cat .runtimeconfig.json | node parser.js

後はデプロイすれば、本番環境にも鍵が反映される。

GitHubで編集を提案

Discussion

ログインするとコメントできます