0
Help us understand the problem. What are the problem?

posted at

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

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;

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?