Files
goldenChart/backend/FCM_BACKEND.md
T
2026-05-28 16:24:14 +09:00

1.2 KiB

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 서버 설정

# .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