【 Firebase 】functions に環境変数を設定する方法を解説!

スポンサーリンク

本記事では、 Firebase Functions の環境変数の設定方法を解説していきます。
前回の記事では、Twitter APIを使用するための各種キー、トークンをソースコード上に直接書いていました。
この各種キーとトークンをFirebase Functionsの環境変数へ登録し、読み出して使うように設定していきたいと思います。

Twitter botの作り方、サンプルはこちらをご覧ください。

スポンサーリンク

Firebase functionsの現在の環境変数を確認

まずはFirebase functionsの現在の環境変数を確認してみましょう。
下記のコマンドを実行してみます。

firebase functions:config:get

何も設定していなければ、{}が返ってきているはずです。

スポンサーリンク

Firebase functionsに環境変数を設定

例として、「APP_KEY」という名前の環境変数を登録してみます。
Twitter APIのAPI Keyとして登録しますので、各環境に読み替えて登録してください。

firebase functions:config:set api.key="API_KEY"

確認コマンドを実行すると、以下の結果が返ってくれば成功です。

$ firebase functions:config:get                  
{
  "api": {
    "key": "API_KEY"
  }
}
スポンサーリンク

Firebase functionsの環境変数を削除

環境変数を削除してみたいと思います。
以下コマンドで前手順で作成した「api」を削除します。

firebase functions:config:unset api

確認コマンドを実行し、apiが削除された結果が返ってくれば成功です。

Twitter APIのキーとトークンの登録

Twitter APIで使用するキーとトークンを登録してみました。
参考にしてみてください。

{
  "api": {
    "secret": "API_KEY_SECRET",
    "key": "API_KEY"
  },
  "access": {
    "secret": "ACCESS_TOKEN_SECRET",
    "token": "ACCESS_TOKEN"
  }
}

Firebase functionsの環境変数をソースコードで取得

functions.config()に続いて設定した環境変数のキーを指定すればアクセスできます。

const functions = require('firebase-functions');

const testClient = new TwitterApi({
    appKey: functions.config().api.key,
    appSecret: functions.config().api.secret,
    accessToken: functions.config().access.token,
    accessSecret: functions.config().access.secret,
});

まとめ

本記事では、Firebase CLIを使用し環境変数の登録を行う方法を解説しました。
.envファイルで管理する方法もあるようですが、詳しくは公式サイトをご覧ください。

前回で懸念だった、ソースコード上に各種キーやトークンを直書きしていた問題は解決します。
環境変数に設定することでキーやトークンの管理も安全ですね。