본문 바로가기
JavaScript/JS & TS

[Firebase] Functions private key 에러(deploy 실패)

by noddu 2023. 12. 11.
728x90
반응형

 

 

문제 발생

 

firebase functions deploy에 실패했습니다.

 

 

firebase deploy --only functions --debug

원인을 알기 위해 debug 모드로 Firebase Functions를 배포해봅니다.

 

 

 

Function failed on loading user code. This is likely due to a bug in the user code. Error message: Provided module can't be loaded.\nIs there a syntax error in your code?\nDetailed stack trace: Error: Failed to parse private key: Error: Invalid PEM formatted message.\n    at FirebaseAppError.FirebaseError [as constructor] 

 

위와 같은 오류가 발생했습니다.

 

지정해놓은 private key를 PEM 형식으로 읽지 못하는 문제가 있습니다.

지정한 key를 개행이 안된 상태로 읽어 발생하는 오류로 파악됩니다.

 

const serviceAccount = {
	...
    private_key: process.env.PRIVATE_KEY,
	...
}

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
})

Firebase Admin SDK를 초기화하는 코드에서 원래 private key를 그대로 불러와서 사용했었는데

 

해결

 

const serviceAccount = {
	...
    private_key: process.env.PRIVATE_KEY.replace(/\\n/gm, "\n"),
    ...
}

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
})

replace함수로 String처리된 \n을 개행으로 바꿔줍니다

반응형