🥴
Firebaseサービスアカウントの秘密キーが解析されない問題の解決法
Firebaseに怒られた!
Firebaseでデータ接続をしようとしたら、
FirebaseAppError: Failed to parse private key: Error: Invalid PEM formatted message.
とエラーが出てしまった。
解決した方法
問題はFIREBASE_PRIVATE_KEY_にエスケープ文字が含まれていること
FIREBASE_PROJECT_ID=wwwwwwww
FIREBASE_CLIENT_EMAIL=xxxxxxxx
FIREBASE_DATABASE_URL=yyyyyyyy
FIREBASE_PRIVATE_KEY=-----BEGIN PRIVATE KEY-----\nzzzzzzzz\n-----END PRIVATE KEY-----\n
これを解決するには、末尾に.replace(/\n/g, '\n')を追加すればOK!
なので、コードは
projectId: process.env.FIREBASE_PROJECT_ID,
clientEmail: process.env.FIREBASE_CLIENT_EMAIL,
privateKey: process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, '\n') // ←
となります。
Discussion