#!/usr/bin/env bash # FANUZU Firebase 프로젝트 개설 — 별첨 3 B-1 「저희 계정으로 먼저 개설」. # # 사전 조건: `firebase login` 을 한 번 해 두어야 합니다(브라우저가 열립니다). # # cd firebase && npx firebase login # ./setup-project.sh # # 하는 일 # 1. 프로젝트 개설 (이미 있으면 건너뜁니다) # 2. Android · iOS 앱 등록 # 3. 설정 파일 두 개를 제자리에 내려받기 # 4. Firestore 규칙·인덱스 배포 # # **Cloud Functions 배포는 하지 않습니다.** Blaze 요금제 전환이 필요하고(D-10), # 그건 결제 수단이 걸린 결정이라 발주사 회신 대상입니다. set -euo pipefail cd "$(dirname "$0")" export PATH="$PWD/node_modules/.bin:$PATH" PROJECT_ID="${FANUZU_PROJECT_ID:-fanuzu-dev-b020d}" ANDROID_ID="${FANUZU_ANDROID_ID:-kr.co.fanuzu.app}" IOS_ID="${FANUZU_IOS_ID:-kr.co.fanuzu.app}" if ! firebase login:list 2>&1 | grep -q '@'; then echo "먼저 로그인하십시오: npx firebase login" >&2 exit 1 fi echo "▸ 프로젝트 $PROJECT_ID" firebase projects:list --json 2>/dev/null | grep -q "\"$PROJECT_ID\"" \ || firebase projects:create "$PROJECT_ID" --display-name "FANUZU Dev" echo "▸ Android 앱 $ANDROID_ID" firebase apps:list ANDROID --project "$PROJECT_ID" --json 2>/dev/null | grep -q "\"packageName\": *\"$ANDROID_ID\"" \ || firebase apps:create ANDROID "FANUZU Android" \ --package-name "$ANDROID_ID" --project "$PROJECT_ID" echo "▸ iOS 앱 $IOS_ID" firebase apps:list IOS --project "$PROJECT_ID" --json 2>/dev/null | grep -q "\"bundleId\": *\"$IOS_ID\"" \ || firebase apps:create IOS "FANUZU iOS" \ --bundle-id "$IOS_ID" --project "$PROJECT_ID" echo "▸ 설정 파일 내려받기" # 앱이 둘 이상(레거시 kr.co.sweech.fancake 잔존)이라 첫 행이 아니라 패키지명으로 고른다. ANDROID_APP=$(firebase apps:list ANDROID --project "$PROJECT_ID" --json 2>/dev/null \ | python3 -c "import json,sys;print(next(a['appId'] for a in json.load(sys.stdin)['result'] if a.get('packageName')=='$ANDROID_ID'))") IOS_APP=$(firebase apps:list IOS --project "$PROJECT_ID" --json 2>/dev/null \ | python3 -c "import json,sys;print(next(a['appId'] for a in json.load(sys.stdin)['result'] if a.get('bundleId')=='$IOS_ID'))") firebase apps:sdkconfig ANDROID "$ANDROID_APP" --project "$PROJECT_ID" \ --out ../android/app/google-services.json firebase apps:sdkconfig IOS "$IOS_APP" --project "$PROJECT_ID" \ --out ../ios/Runner/GoogleService-Info.plist echo "▸ Firestore 규칙·인덱스 배포" firebase deploy --only firestore --project "$PROJECT_ID" cat <<'DONE' 끝났습니다. 남은 것 둘. 1. Firebase 콘솔에서 Authentication → Sign-in method → 「이메일/비밀번호」와 「Google」을 켜 주십시오. CLI 로는 켤 수 없습니다. Google 을 켜야 google-services.json 에 oauth_client 가 채워집니다. 2. Android SHA-1 지문 등록도 CLI 에 명령이 없습니다. 콘솔의 프로젝트 설정 → 내 앱 → Android 앱 → 「디지털 지문 추가」로 넣으십시오. 절차와 현재 등록값은 BUILD.md 「Firebase 앱 등록」에 있습니다. 3. Cloud Functions 배포는 Blaze 요금제 전환(D-10) 뒤에 합니다. 설정 파일 두 개는 .gitignore 에 걸려 있어 저장소에 올라가지 않습니다. DONE