5
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Firebaseの認証情報をHeroku環境変数に登録してNodeアプリで使う

Posted at

#Heroku環境変数を登録する
GitHubのプロジェクトをHerokuでbuildして運用する場合、firebaseの認証情報はGitHubに上げられないので、Heroku環境変数に登録して使う。
事前にfirebaseで秘密鍵を生成してダウンロードしておく(プロジェクト -> プロジェクトの設定 -> サービスアカウント -> 新しい秘密鍵の生成)
Heroku環境変数への登録が必要なのは以下の3つ

  • projectId
  • clientEmail
  • privateKey
heroku config:set PROJECT_ID="<PROJECT_ID>" --app アプリ名
heroku config:set CLIENT_EMAIL="foo@<PROJECT_ID>.iam.gserviceaccount.com" --app アプリ名
heroku config:set PRIVATE_KEY="-----BEGIN PRIVATE KEY-----\n<KEY>\n-----END PRIVATE KEY-----\n --app アプリ名

NodeアプリからHeroku環境変数を呼び出す

Firebase SDKの初期化の際、下記のようにして呼び出す。
このときprivateKeyの改行を置換しないと、Herokuのbuildが通らないので注意。

admin.initializeApp({
  credential: admin.credential.cert({
    projectId: process.env.FIREBASE_PROJECT_ID,
    clientEmail: process.env.FIREBASE_CLIENT_EMAIL,
    privateKey: process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, '\n')
  }),
  databaseURL: `https://${process.env.FIREBASE_PROJECT_ID}.firebaseio.com`
});
5
5
0

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
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?