I use .env
variables in my app.js file to access the keys. Everything was working fine until I downloaded a new Firebase Service Account Private Key
. When I replaced the old value with the new value I can no longer access the key because in terminal
when I run node app.js
I keep getting an error message:
/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/auth/credential.js:129
throw new error_1.FirebaseAppError(error_1.AppErrorCodes.INVALID_CREDENTIAL,
'Failed to parse private key: ' + error);
^
Error: Failed to parse private key: Error: Invalid PEM formatted
message.
at FirebaseAppError.FirebaseError [as constructor] (/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/utils/error.js:39:28)
at FirebaseAppError.PrefixedFirebaseError [as constructor] (/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/utils/error.js:85:28)
at new FirebaseAppError (/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/utils/error.js:119:28)
at new Certificate (/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/auth/credential.js:129:19)
at new CertCredential (/Users/Cpu/Desktop/...../node_modules/firebase-admin/lib/auth/credential.js:192:64)
at Object.cert (/Users/Cpu/Desktop/.....)
at Object. (/Users/Cpu/Desktop/...../app.js:14:32)
at Module._compile (module.js:571:32)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32) at FirebaseAppError.FirebaseError [as constructor]
npm ERR! code ELIFECYCLE npm ERR! errno 1
All I did was c+p the new Private Key
and then added it and saved the .env
file, pushed to heroku, and it's no longer working. I even downloaded a new Private Key
but the same problem occurs.
The old and new Private Keys
// old Private Key
-----BEGIN PRIVATE KEY-----
bbbbbbbb
-----END PRIVATE KEY-----
// new Private Key
-----BEGIN PRIVATE KEY-----
zzzzzzzz
-----END PRIVATE KEY-----
The .env file:
FIREBASE_PROJECT_ID=wwwwwwww
FIREBASE_CLIENT_EMAIL=xxxxxxxx
FIREBASE_DATABASE_URL=yyyyyyyy
FIREBASE_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----
zzzzzzzz
-----END PRIVATE KEY-----
The app.js file:
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
});
How can I fix this issue?
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…