بنقرة واحدة
troubleshoot-deployment
Cloud Functions, 프론트엔드 빌드 및 배포 시 발생하는 다양한 오류(Node 버전, 의존성 충돌, 소스맵)의 해결 패턴을 모아둔 가이드.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Cloud Functions, 프론트엔드 빌드 및 배포 시 발생하는 다양한 오류(Node 버전, 의존성 충돌, 소스맵)의 해결 패턴을 모아둔 가이드.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
프로젝트 구조와 네이밍 컨벤션에 맞게 새 React 컴포넌트를 추가하는 가이드
PDF(인쇄 레이아웃) 및 Excel(xlsx 동적 로딩) 파일 내보내기 구현 및 갱신 패턴 가이드
Gemini 3.1 Flash Lite API를 사용한 계기판 OCR 및 증빙 서류 AI 판별 연동 패턴 가이드
Sentry에 잡힌 환경/브라우저/외부 의존성 발 노이즈 에러를 필터링한다. 사용자가 "Sentry 노이즈", "Sentry 에러 필터", "이 에러 무시", "Sentry에 자꾸 뜨는 X 막아줘" 등을 요청할 때 발동한다.
React 단위 테스트(Vitest) 및 E2E 테스트(Playwright) 작성 컨벤션과 Mocking 가이드
functions/src/ 디렉터리에 새 Cloud Function을 추가하고 index.ts에 등록하는 패턴 가이드
| name | troubleshoot-deployment |
| description | Cloud Functions, 프론트엔드 빌드 및 배포 시 발생하는 다양한 오류(Node 버전, 의존성 충돌, 소스맵)의 해결 패턴을 모아둔 가이드. |
로컬 머신이나 CI/CD 환경에서 Firebase 배포 시 자주 발생하는 패턴을 파악하고, 에이전트가 이를 빠르고 정확하게 진단·해결하도록 돕습니다.
증상: npm install 실행 시 의존성 트리 충돌로 인해 설치가 중단됨.
원인: 주로 firebase-functions, firebase-admin 버전과 관련된 하위 플러그인 호환성 문제.
해결책:
package.json의 overrides 필드를 활용해 충돌하는 의존성의 버전을 강제 지정한다.
"overrides": {
"minimatch": ">=9.0.5"
}
--legacy-peer-deps를 쓸 수 있지만 권장하지 않음.증상: 프론트엔드 npm run build 중 스택 오버플로우나 메모리 부족으로 크래시 발생.
원인: Node 24 등 최신 버전과 Vite/Rollup 플러그인 간 호환성 문제.
해결책:
fnm use 22 실행 후 빌드 재시도.증상: Functions 배포 시 타겟 모듈을 찾을 수 없거나 구문 오류가 발생했다고 나옴.
원인: TypeScript 컴파일 결과를 GCP(Cloud Build)가 인식하지 못하거나, main 진입점이 잘못됨.
해결책:
functions/package.json에서 gcp-build: "" 스크립트 추가 확인 (Cloud Build 이중 빌드 방지).functions/package.json의 main 속성이 트랜스파일 결과물(lib/functions/src/index.js 또는 lib/index.js)을 올바르게 가리키는지 확인.cd functions && npm run build를 통해 lib 폴더가 정상 생성되었는지 검증.증상: npm test 시 "Firebase: Error (auth/invalid-api-key)." 등 인증 에러 발생.
원인: 테스트 환경(Vitest)에 Firebase 초기화에 필요한 VITE_FIREBASE_API_KEY 환경변수가 제대로 로딩되지 않거나 Mocking되지 않음.
해결책:
vite.config.ts의 test 섹션에서 env 변수를 명시적으로 로드하거나 Mock 설정(vi.mock)을 통해 Firebase 초기화 부분을 모의(Mock) 객체로 우회한다.증상: CI 배포의 "Deploy Functions & Rules" 단계가 아래 중 하나로 실패.
Permission 'secretmanager.secrets.setIamPolicy' denied for resource '.../secrets/<NAME>'Missing required permission ... cloudfunctions.functions.setIamPolicy ... to deploy the following functions: <fn>원인: CI 배포 서비스계정(firebase-adminsdk-fbsvc@vehicle-drive-log.iam.gserviceaccount.com)은 roles/editor를 갖는데, Editor 역할에는 setIamPolicy 계열 권한이 빠져 있다(IAM 정책 변경은 admin/owner 역할에만 포함). 그래서:
defineSecret을 쓰는 함수를 처음 배포하면, 런타임 SA(1066541065552-compute@developer.gserviceaccount.com)에 시크릿 읽기 권한(secretAccessor)을 걸어야 하는데 그 IAM 설정에서 막힌다. (기존 시크릿은 바인딩이 이미 있어 재배포 시 통과)해결책 (프로젝트 소유자가 1회 부여, 이후 영구히 자동 처리):
gcloud secrets add-iam-policy-binding <SECRET_NAME> \
--member="serviceAccount:1066541065552-compute@developer.gserviceaccount.com" \
--role="roles/secretmanager.secretAccessor" --project=vehicle-drive-log
cloudfunctions.functions.setIamPolicy 포함). 이미 있는 Editor에 더해지는 것이라 실질 확장은 setIamPolicy뿐.
gcloud projects add-iam-policy-binding vehicle-drive-log \
--member="serviceAccount:firebase-adminsdk-fbsvc@vehicle-drive-log.iam.gserviceaccount.com" \
--role="roles/cloudfunctions.admin"
gh run rerun <deploy_run_id> --failed.firebase functions:secrets:set) 후에는 함수 재배포가 있어야 새 버전이 반영된다. 로컬 재배포 프롬프트(Y/n)는 n(로컬 배포 금지) 후 CI 재배포로 반영.앱 배포 직후 치명적인 오류(예: App Check 적용 후 대량 인증 실패)가 발생하면, 즉각적인 문제 분석보다 **원복(Rollback)**이 우선입니다.
firebase hosting:rollback 명령 실행git revert를 수행한 후, /deploy 워크플로우를 재실행합니다.