Files
goldenChart/app/android/FCM_SETUP.md
T
2026-05-28 20:48:28 +09:00

64 lines
2.6 KiB
Markdown

# Android FCM 설정 (goldenApp / goldenanalysisapp)
기존 **goldenApp** (`~/dev/goldenAnalysis/goldenApp`) 과 동일 Firebase 프로젝트를 사용합니다.
## 1. Firebase Console
1. [Firebase Console](https://console.firebase.google.com/) → 프로젝트 **goldenanalysisapp**
2. **앱 추가** → Android
3. 패키지 이름: `com.goldenchart.app` (Capacitor `applicationId` 와 동일)
4. `google-services.json` 다운로드
## 2. 프로젝트에 배치
```bash
# 권장: repo 루트 app/google-services.json (com.goldenchart.app 포함)
cp ~/Downloads/google-services.json app/google-services.json
./scripts/ensure-android-google-services.sh
# 또는 한 번에
./scripts/setup-android-fcm.sh ~/Downloads/google-services.json
```
빌드 시 `ensure-android-google-services.sh``app/google-services.json`
`app/android/app/google-services.json` 으로 복사합니다. **이 파일이 없으면**
알림 권한 허용 직후 `PushNotifications.register()` 에서 **앱이 종료**될 수 있습니다.
## 3. 빌드
```bash
npm run cap:sync
cd app/android && ./gradlew assembleRelease
```
`google-services.json` 이 없으면 Gradle 로그에
`google-services plugin not applied` 가 나오며 **푸시가 동작하지 않습니다**.
## 4. 서버 (exdev)
- `FIREBASE_ENABLED=true`
- `firebase-service-account.json` (goldenanalysisapp 서비스 계정)
- 앱 설정에서 **FCM 푸시** ON (`fcm_push_enabled`)
## 5. 앱에서 확인
1. **2.4 이상 APK** 설치 (`google-services.json` 포함 빌드 필수)
2. 크래시가 반복되면 **앱 삭제 후 재설치** (이전에 허용한 알림 권한 초기화)
3. 로그인 → **설정 → FCM 푸시** ON
4. **「알림 허용 · FCM 등록」** 버튼 → 시스템 팝업에서 허용 (2초 후 등록)
5. **테스트 발송** 으로 확인
로그인·메인 진입 시에는 **알림 권한을 절대 요청하지 않습니다** (2.3+).
FCM 푸시 토글 ON → **「알림 허용 · FCM 등록」** 버튼을 눌렀을 때만 권한 팝업이 뜹니다.
## goldenApp 과의 차이
| 항목 | goldenApp | GoldenChart (Capacitor) |
|------|-----------|-------------------------|
| 패키지 | `com.golden.app` | `com.goldenchart.app` |
| FCM SDK | 직접 Firebase Messaging | 앱 내장 `GoldenFcm` 플러그인 (Capacitor Push 미사용) |
| 토큰 등록 | `POST /api/fcm/token` | 동일 (`registerFcmToken`) |
| 알림 채널 | `golden_alerts` | `goldenchart_trade_signals` |
로그인 사용자는 **userId** 기준으로 FCM 토큰을 조회하므로, 웹·모바일 deviceId 가 달라도 푸시를 받을 수 있습니다.