【发布时间】:2021-12-29 02:18:40
【问题描述】:
我没有传入实际的 JSON,而是从 .env 检索键值并手动设置它们 similar to this。
在本地测试时,一切正常。在使用 Elastic Beanstalk 的生产环境中,初始化失败:
12 月 29 日 01:23:41 ip-000-00-00-000 网络:/var/app/current/node_modules/firebase-admin/lib/app/credential-internal.js:143
Dec 29 01:23:41 ip-000-00-00-000 web: throw new error_1.FirebaseAppError(error_1.AppErrorCodes.INVALID_CREDENTIAL, 'Failed to parse private key:' + error);
12 月 29 日 01:23:41 ip-000-00-00-000 web:FirebaseAppError:无法解析私钥:错误:仅支持 8、16、24 或 32 位:528
12 月 29 日 01:23:41 ip-000-00-00-000 web:在 FirebaseAppError.FirebaseError [作为构造函数] (/var/app/current/node_modules/firebase-admin/lib/utils/error.js :44:28)
唯一的区别是,我从 Elastic Beanstalk 中提取环境变量,而不是本地 .env:
还有其他的:
config.js:
const dotenv = require('dotenv');
dotenv.config();
const {PORT, TYPE, PROJECT_ID, PRIVATE_KEY_ID, PRIVATE_KEY, ... } = process.env;
module.exports = {
port: PORT,
firebaseConfig: {
type: TYPE,
projectId: PROJECT_ID,
privateKeyId: PRIVATE_KEY_ID,
privateKey: PRIVATE_KEY.replace(/\\n/g, '\n'),
clientEmail: CLIENT_EMAIL,
...
}
}
db.js:
const config = require('./config'),
firebase = require('firebase-admin');
const db = firebase.initializeApp({
credential: firebase.credential.cert(config.firebaseConfig)
});
module.exports = db;
提前致谢!
【问题讨论】:
标签: node.js firebase google-cloud-firestore environment-variables amazon-elastic-beanstalk