🥴

Firebaseサービスアカウントの秘密キーが解析されない問題の解決法

2021/08/03に公開

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