Я использую .env
переменные в моем файле app.js для доступа к ключам. Все работало нормально, пока я не скачал новый Firebase Service Account Private Key
. Когда я заменил старое значение новым, я больше не могу получить доступ к ключу, потому что в terminal
, когда я запускаю node app.js
, я получаю сообщение об ошибке:
/ Пользователи / Cpu / Desktop /...../ node_modules / firebase-админ / Библиотека / авториз / credential.js: 129
бросить новый error_1.FirebaseAppError (error_1.AppErrorCodes.INVALID_CREDENTIAL,
'Не удалось разобрать закрытый ключ:' + ошибка);
^
Ошибка: не удалось проанализировать закрытый ключ: Ошибка: неверный формат 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 / Процессор / Рабочий стол / .....)
на объекте. (/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 [в качестве конструктора]
нпм ERR! код ELIFECYCLE npm ERR! errno 1
Все, что я сделал, это с + 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
});
Как я могу исправить эту проблему?