LoginSignup
0
0

More than 1 year has passed since last update.

HerokuでGoogle認証情報・環境変数を扱う方法

Posted at

HerokuでGoogle認証情報・環境変数を扱う

前置き

通常ローカル開発環境では.envファイルにkey:valueペアの定数を定義したり、Google APIの認証情報をJSONファイルに保持していたりするが、HerokuなどのPaaSでGithubリポジトリ連携する場合、資格情報を公開しない状態でアプリ側で扱えるようにする必要がある。

Google資格情報のJSONファイルの一例:
gcredentials_hidden.png

$ heroku config:set GOOGLE_CREDENTIALS="$(< /home/charles/Programs/heroku/google-credentials.json)" --app "myapp"

Herokuでの確認

のSettingsタブ > Config Varsで確認
heroku-env_hidden.png

環境変数について

Node.jsのdotenvパッケージを使用して.envファイルに保存された環境変数を読み込んでいる場合も、Heroku環境変数から読み出すようにソースの記述を変更する。

Firebase.js
import firebase from 'firebase'

// We read Config Vars from Heroku, so no need to load .env
// const dotenv = require('dotenv')
// dotenv.config()

const {
	API_KEY,
	AUTH_DOMAIN,
	PROJECT_ID,
	STORAGE_BUCKET,
	MESSAGING_SENDER_ID,
	APP_ID
} = process.env

const fb_config = {
	apiKey: API_KEY,
	authDomain: AUTH_DOMAIN,
	projectId: PROJECT_ID,
	storageBucket: STORAGE_BUCKET,
	messagingSenderId: MESSAGING_SENDER_ID,
	appId: APP_ID
}

const firebaseApp = firebase.initializeApp(fb_config)
//firebase.firestore().settings({ experimentalForceLongPolling: true, merge: true })
const db = firebaseApp.firestore()

export default db;
0
0
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
0
0