카테고리 없음
Firebase Cloud Messaging (FCM)
코코넛딩
2025. 5. 19. 17:52
1. 메시지 유형 : notification, data
1. Notification message
- display message로 생각될 수 있다.
- 이 메세지는 FCM SDK가 자동으로 처리한다.
- 미리 정의된 키 세트(사용자에게 표시할 키 세트)를 포함하고 있다.
- 선택적 데이터 페이로드를 포함할 수 있다.
- 백그라운드 상태에서 notification message 수신하면 FCM SDK가 자동으로 시스템 알림 영역에 표시합니다.
- 최대 페이로드 크기는 4096 바이트이다.
- 페이로드 : 데이터를 전달하는 내용 또는 실제 데이터를 의미한다.
- 전송 방법
- Cloud Functions 또는 앱 서버와 같은 신뢰할 수 있는 환경에서 Admin SDK 또는 HTTP v1 API를 사용합니다.
- Cloud function
- 백그라운드 이벤트, HTTPS 요청, Admin SDK 또는 Cloud Scheduler 작업에 의해 트리거 되는 이벤트에 응답하여 백엔드 코드를 자동으로 실행할 수 있는 서버리스 프레임워크입니다.
- Admin SDK
- 권한이 있는 환경에서 Firebase와 상호작용하여 여러 작업을 수행할 수 있는 서버 라이브러리 집합입니다.
- Realtime Database나 Firebase Cloud Messaging 등 여러 작업을 다룰 수 있습니다.
- Firebase Cloud Messaging 서버 프로토콜에 간단한 접근법을 제공해서 코드로 Firebase Cloud Messaging 메세지를 전송할 수 있게합니다.
- HTTP v1 API
- Firebase 프로젝트는 앱 서버 또는 신뢰할 수 있는 환경에서 Firebase Server API를 호출하는 데 사용할 수 있는 Google 서비스 계정을 지원한다.
- 로컬에서 코드를 개발하거나 온프레미스에 애플리케이션을 배포하는 경우 이 서비스 계정을 통해 가져온 사용자 인증 정보를 사용하여 서버 요청을 승인할 수 있습니다.
- 서비스 계정을 인증하고 Firebase 서비스에 엑세스 하도록 승인하려면 JSON 형식의 비공개 키 파일을 생성해야 합니다.
- 서비스 계정의 비공개 키 파일 생성하는 방법
- Firebase Console에서 설정 > 서비스 계정을 엽니다.
- 새 비공개 키 생성을 클릭한 다음 키 생성을 클릭하여 확인합니다.
- 키가 들어있는 JSON 파일을 안전하게 저장합니다.
- Cloud function
- notification 키를 설정합니다.
- 선택사항으로 데이터 페이로드를 추가할 수 있습니다.
- 항상 축소형입니다.
- Cloud Functions 또는 앱 서버와 같은 신뢰할 수 있는 환경에서 Admin SDK 또는 HTTP v1 API를 사용합니다.
2. Data message
- 클라이언트 앱이 데이터를 처리해야한다.
- 데이터 메세지는 커스텀 키-값 쌍만 포함하며, 미리 정의된 키는 없습니다.
- 최대 페이로드 크기는 4096 바이트이다.
- 백그라운드에서도 포그라운드에서도 onMessageReceived에서 처리합니다.
- 전송 방법
- Cloud Functions 또는 앱 서버와 같은 신뢰할 수 있는 환경에서 AdminSDK 또는 FCM 서버 프로토콜(FCM HTTP v1 API)을 사용합니다.
- 전송 요청에서 data 키를 설정합니다.
- 전송 방법
2. Notification Message + Data Message
- 프로그램을 통해 또는 Firebase 콘솔을 통해 알림 메시지를 보내면서 선택적인 커스텀 키-값 페이로드를 포함할 수 있습니다.
- Firebase console에서 고급 옵션에서 커스텀 데이터 필드를 사용할 수 있습니다.
- notification message와 data message를 같이 보낼 떄 알림 페이로드 표시는 FCM에서 처리하고 데이터 페이로드는 클라이언트 앱에서 처리합니다.
- Notification Message와 Data Message를 같이 보낼 경우 백그라운드에 있는지 포그라운드에 있는지에 따라 달라집니다.
- 백그라운드 상태
- 앱은 notification 페이로드를 notification tray에 표시합니다.
- 사용자가 알림을 탭하면 데이터 페이로드를 처리합니다.
- 포그라운드 상태
- 앱은 메세지 객체를 수신하며, Notification payload와 data payload 모두 앱에서 사용할 수 있는 상태로 받습니다.
- 백그라운드 상태