firebaseサービスアカウントを使用するノードアプリケーションがあります。私はHerokuにアプリを展開したいと思いますが、自分の秘密鍵を公開したくありません。私は公開のgithubリポジトリから直接展開しているので、展開にサービスアカウントファイルを含めたくありません。サービスアカウントを持つFirebaseアプリケーションをHerokuに配備する(dotenvを使用する環境変数)
サービスアカウントのjsonファイルを利用して、各プロパティを環境変数にし、それらの変数をそれぞれHerokuに追加して展開することができます。すべてがうまくいきます(私のfirebaseアプリケーションで新しいHerokuドメインを承認した後)、これを行う良い方法がありますか?これはうまくいきましたが、それは苦労していました(それぞれの変数をコピーして貼り付けて移動する)。これを行う簡単な方法がないのですか?
ここに私が行っている変更があります。環境変数から同じ事の全てにもたらしているこのオブジェクトに
admin.initializeApp({
credential: admin.credential.cert('./path/firebase-service-account.json'),
databaseURL: "https://my-firebase-app.firebaseio.com"
});
:それはファイルからの資格情報を引っ張っている。このラインから
admin.initializeApp({
credential: admin.credential.cert({
"type": process.env.FIREBASE_TYPE,
"project_id": process.env.FIREBASE_PROJECT_ID,
"private_key_id": process.env.FIREBASE_PRIVATE_KEY_ID,
"private_key": process.env.FIREBASE_PRIVATE_KEY,
"client_email": process.env.FIREBASE_CLIENT_EMAIL,
"client_id": process.env.FIREBASE_CLIENT_ID,
"auth_uri": process.env.FIREBASE_AUTH_URI,
"token_uri": process.env.FIREBASE_TOKEN_URI,
"auth_provider_x509_cert_url": process.env.FIREBASE_AUTH_PROVIDER_X509_CERT_URL,
"client_x509_cert_url": process.env.FIREBASE_CLIENT_X509_CERT_URL
}),
databaseURL: "https://my-firebase-app.firebaseio.com"
});
これは、展開するためのベストプラクティスですHerokuにサービスアカウントを持つfirebaseアプリケーションですか?私はこれを達成するためにdotenvノードモジュールを使用しています。
process.env.FIREBASE_CLIENT_x509_CERT_URL - "X"を大文字にする必要があると思います – Casey
うん!私は編集をしました。あなたがそのキャッチを作ってくれてありがとう。それでもベストプラクティスに関するガイダンスを探しています。 –