我有一个使用firebase服务帐户的 node 应用程序.我想将应用程序部署到Heroku,但我不想公开我的密钥.我直接从公共github repo进行部署,所以我不想在部署中包含服务帐户文件.
我可以使用服务帐户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"
});
这是将带有服务帐户的firebase应用程序部署到Heroku的最佳做法吗?我正在使用dotenv node 模块来实现这一点.