npm v6.12.0
node v10.16.0
Я использую Firebase SDK для моего приложения. У меня никогда не было этой проблемы, пока я не изменил всю информацию о моем сервере сегодня. Это журналы ошибок Heroku, которые я получаю, когда пытаюсь получить удаленный доступ к коду через мое приложение
TypeError: Невозможно прочитать свойство 'replace' из неопределенного
Я запускаю $ heroku logs --app myAppName
:
2019-10-21T21:07:12.988431+00:00 app[web.1]: privateKey: process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, '\n'),
2019-10-21T21:07:12.988433+00:00 app[web.1]: ^
2019-10-21T21:07:12.988435+00:00 app[web.1]:
2019-10-21T21:07:12.988436+00:00 app[web.1]: TypeError: Cannot read property 'replace' of undefined
Но когда я запускаю node app.js
или локально из терминала, все работает нормально. Также, когда я запускаю npm start
из терминала, все работает нормально. В чем может быть причина этой проблемы?
Вот код:
const admin = require("firebase-admin");
admin.initializeApp({
credential: admin.credential.cert({
projectId: process.env.FIREBASE_PROJECT_ID,
privateKey: process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, '\n'),
clientEmail: process.env.FIREBASE_CLIENT_EMAIL
}),
databaseURL: process.env.FIREBASE_DATABASE_URL,
databaseAuthVariableOverride: {
uid: process.env.MY_CUSTOM_TOKEN
}
});
И внутри моего .env
файла, который я добавил в .gitignore
FIREBASE_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----xxxxx\n-----END PRIVATE KEY-----\n
Я также пытался:
// removed the .replace(/\\n/g, '\n')
privateKey: process.env.FIREBASE_PRIVATE_KEY
и в файле .env:
// I added quotes
FIREBASE_PRIVATE_KEY="-----BEGIN PRIVATE KEY-----xxxxx\n-----END PRIVATE KEY-----\n"
Что не может прочитать свойство 'replace' из неопределенного среднего значения? Itне может быть значением FIREBASE_PRIVATE_KEY, потому что когда я запускаю node app.js
или npm start
, я получаю ошибки, которых нет.