GCM에서 FCM으로 마이그레이션
회사에서 운영하는 서비스 중 안드로이드 앱이 있는데, 이 앱에서는 아직도 GCM으로 push messege를 보내고 있다. 하지만 더이상 그럴 수 없는 상황이 되었다.
GCM을 FCM으로 이관해야 한다.
이에 간단한 보고자료를 작성했는데, 다른 분들께도 유용할까 싶어 공유한다.
- 현황
- Android 앱에서 GCM으로 push messege 발송 중
- Android Oreo 버전의 기기부터 FCM을 사용하지 않은 push messege의 수신이 제한됨
- 원인
- Oreo부터 백그라운드 실행 제한
- push messege의 수신 및 notification display도 백그라운드 실행 제한에 포함
- 단 FCM으로 수신받은 push messege는 예외
- 공식문서: https://developer.android.com/about/versions/oreo/background.html?hl=ko
- 결과: 앱 종료 혹은 기기 sleep mode시 push notification을 띄워주지 않음
- 필요한 조치: push messege 발송을 GCM -> FCM으로 이관
- 원인
- FCM과 GCM
- FCM은 GCM의 확장판(참고: https://joshua1988.github.io/web-development/fcm-gcm-difference/)
- FCM(https://firebase.google.com/docs/cloud-messaging/)
- Firebase에서 제공하는 push messege 발송 서비스
- Firebase
- Firebase: google의 클라우드 개발 플랫폼(https://firebase.google.com/?hl=ko)
- BaaS, FaaS 제공
- 개발 필요 사항
- Android 앱
- device id 발급 API 변경(GCM -> FCM)
- 수신받은 push messege 핸들링
- GCM 및 불필요한 기존 코드 삭제
- push 발송 서버
- 필요시 전면 재구축(Node.js가 권고사항)
- 재구축 필요치 않을 경우
- HTTP 엔드포인트 변경
- auth_key 변경
- FCM 발송 json 포맷 적용
- 발송 결과 처리
- 이관 참고 문서: https://developers.google.com/cloud-messaging/android/android-migrate-fcm#update_the_usage_of_gcmpubsub
- Android 앱
- FCM push 발송 서버
Leave a comment