1.2 KiB
1.2 KiB
Backend FCM — 전략 시그널 → Android 푸시
흐름
BarBuilder / LiveStrategyScheduler
→ TradeSignalService.save(userId, deviceId, …)
→ FcmPushService.sendTradeSignalIfEnabled(…)
→ Firebase Cloud Messaging → Android 앱
발송 조건 (모두 필요)
firebase.enabled=true+firebase-service-account.json유효- 해당 사용자/기기
gc_app_settings.fcm_push_enabled = true gc_fcm_token에 활성 토큰 등록 (앱 로그인 후 자동 등록)- 로그인 사용자:
userId기준 토큰 조회 (모바일·웹 deviceId 달라도 OK)
exdev 서버 설정
# .env 또는 docker-compose 환경
FIREBASE_ENABLED=true
FIREBASE_SERVICE_ACCOUNT=/app/firebase-service-account.json
docker-compose.yml 볼륨 (주석 해제):
- ${FIREBASE_SERVICE_ACCOUNT_PATH}:/app/firebase-service-account.json:ro
goldenApp과 동일 프로젝트 goldenanalysisapp 서비스 계정 JSON 사용.
확인
curl http://exdev.co.kr/api/fcm/status
# {"available":true}
# 앱에서 FCM 푸시 ON 후
curl -X POST http://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