【发布时间】:2018-10-22 06:49:46
【问题描述】:
我在 app.js 文件中使用 .env 变量来访问密钥。在我下载新的Firebase Service Account Private Key 之前,一切正常。当我用新值替换旧值时,我无法再访问密钥,因为在 terminal 中运行 node app.js 时,我不断收到错误消息:
/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/auth/credential.js:129 抛出新的 error_1.FirebaseAppError(error_1.AppErrorCodes.INVALID_CREDENTIAL, '解析私钥失败:' + error); ^
错误:无法解析私钥:错误:无效的 PEM 格式 信息。 在 FirebaseAppError.FirebaseError [作为构造函数] (/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/utils/error.js:39:28) 在 FirebaseAppError.PrefixedFirebaseError [作为构造函数] (/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/utils/error.js:85:28) 在新的 FirebaseAppError (/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/utils/error.js:119:28) 在新证书(/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/auth/credential.js:129:19) 在新的 CertCredential (/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/auth/credential.js:192:64) 在 Object.cert (/Users/Cpu/Desktop/.....) 在对象。 (/Users/Cpu/Desktop/...../app.js:14:32) 在 Module._compile (module.js:571:32) 在 Object.Module._extensions..js (module.js:580:10) 在 Module.load (module.js:488:32) 在 FirebaseAppError.FirebaseError [作为构造函数] npm 错误!代码 ELIFECYCLE npm 错误!错误号 1
我所做的只是 c+p 新的Private Key 然后添加它并保存.env 文件,推送到heroku,它不再工作。我什至下载了一个新的Private Key,但出现了同样的问题。
新旧私钥
// old Private Key
-----BEGIN PRIVATE KEY-----\nbbbbbbbb\n-----END PRIVATE KEY-----\n
// new Private Key
-----BEGIN PRIVATE KEY-----\nzzzzzzzz\n-----END PRIVATE KEY-----\n
.env 文件:
FIREBASE_PROJECT_ID=wwwwwwww
FIREBASE_CLIENT_EMAIL=xxxxxxxx
FIREBASE_DATABASE_URL=yyyyyyyy
FIREBASE_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----\nzzzzzzzz\n-----END PRIVATE KEY-----\n
app.js 文件:
const dotenv = require('dotenv');
dotenv.load();
var admin = require("firebase-admin");
admin.initializeApp({
credential: admin.credential.cert({
projectId: process.env.FIREBASE_PROJECT_ID, // I get no error here
clientEmail: process.env.FIREBASE_CLIENT_EMAIL, // I get no error here
privateKey: process.env.FIREBASE_PRIVATE_KEY // I get error HERE
}),
databaseURL: process.env.FIREBASE_DATABASE_URL
});
我该如何解决这个问题?
【问题讨论】:
标签: json node.js parsing npm firebase-authentication