64 lines
2.6 KiB
Markdown
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 가 달라도 푸시를 받을 수 있습니다.
|