Files
goldenChart/backend/FCM_BACKEND.md
T
2026-06-17 10:00:34 +09:00

48 lines
1.2 KiB
Markdown

# Backend FCM — 전략 시그널 → Android 푸시
## 흐름
```
BarBuilder / LiveStrategyScheduler
→ TradeSignalService.save(userId, deviceId, …)
→ FcmPushService.sendTradeSignalIfEnabled(…)
→ Firebase Cloud Messaging → Android 앱
```
## 발송 조건 (모두 필요)
1. `firebase.enabled=true` + `firebase-service-account.json` 유효
2. 해당 사용자/기기 `gc_app_settings.fcm_push_enabled = true`
3. `gc_fcm_token` 에 활성 토큰 등록 (앱 로그인 후 자동 등록)
4. 로그인 사용자: `userId` 기준 토큰 조회 (모바일·웹 deviceId 달라도 OK)
## exdev 서버 설정
```bash
# .env 또는 docker-compose 환경
FIREBASE_ENABLED=true
FIREBASE_SERVICE_ACCOUNT=/app/firebase-service-account.json
```
`docker-compose.yml` 볼륨 (주석 해제):
```yaml
- ${FIREBASE_SERVICE_ACCOUNT_PATH}:/app/firebase-service-account.json:ro
```
goldenApp과 동일 프로젝트 **goldenanalysisapp** 서비스 계정 JSON 사용.
## 확인
```bash
curl https://stock.exdev.co.kr/api/fcm/status
# {"available":true}
# 앱에서 FCM 푸시 ON 후
curl -X POST https://stock.exdev.co.kr/api/fcm/test \
-H "x-user-id: 1" \
-H "x-device-id: <앱 device id>"
```
로그: `[FCM] trade_signal sent N/M tokens market=KRW-BTC BUY`