FCM을 사용하면 클라이언트 앱에 두 가지 유형의 메시지를 보낼 수 있습니다.
- 알림 메시지는 '표시 메시지'와 유사하며 FCM SDK에서 자동으로 처리합니다.
- 데이터 메시지: 클라이언트 앱에서 처리합니다.
알림 메시지에는 사용자에게 표시되는 키 모음이 사전 정의되어 있으며 데이터 페이로드(선택사항)가 포함될 수 있습니다. 반면 데이터 메시지에는 사용자가 정의한 커스텀 키-값 쌍만 포함됩니다. 두 메시지 유형의 최대 페이로드는 4, 096바이트입니다. Firebase 콘솔에서 메시지를 보내는 경우는 예외로 1, 000자(영문 기준)의 글자 수 제한이 적용됩니다.
사용 시나리오 | 전송 방법 | |
---|---|---|
알림 메시지 | 클라이언트 앱이 백그라운드에서 실행 중일 때 FCM SDK가 앱을 대신하여 최종 사용자 기기에 메시지를 표시합니다. 그 외의 경우에는 알림이 수신될 때 앱이 포그라운드에서 실행 중이면 앱의 코드에 따라 동작이 결정됩니다. |
|
데이터 메시지 | 클라이언트 앱이 데이터 메시지 처리를 담당합니다. 데이터 메시지에는 예약 키 이름 없이 커스텀 키-값 쌍만 있습니다 (아래 참조). |
Cloud Functions 또는 앱 서버와 같은 신뢰할 수 있는 환경에서 Firebase Admin SDK 또는 HTTP v1 API를 사용합니다.
전송 요청에서 data 키를 설정합니다.
|
앱이 백그라운드에서 실행 중일 때 FCM SDK가 알림 표시를 자동으로 처리하게 하려면 알림 메시지를 사용하세요. FCM은 선택사항인 데이터 페이로드가 포함된 알림 메시지를 보낼 수 있습니다. 이러한 경우 FCM는 알림 페이로드를 표시하고 클라이언트 앱은 데이터 페이로드를 처리합니다.
자체 클라이언트 앱 코드로 메시지를 처리하려면 데이터 메시지를 사용하세요.
알림 메시지
Firebase 콘솔, Firebase Admin SDK 또는 FCM HTTP v1 API를 사용하여 알림 메시지를 보낼 수 있습니다. Firebase 콘솔은 애널리틱스 기반의 A/B 테스팅을 제공하여 알림 메시지를 수정하고 개선하는 데 도움이 됩니다.
Firebase Admin SDK 또는 FCM HTTP v1 API를 사용하여 알림 메시지를 보내려면 notification
키를 알림 메시지의 사전 정의된 키-값 옵션 모음으로 설정합니다. 다음 예시를 사용하여 IM 앱에서 알림 메시지를 형식화할 수 있습니다.
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"notification":{
"title":"Portugal vs. Denmark",
"body":"great match!"
}
}
}
앱이 백그라운드 상태이면 알림 메시지가 알림 목록으로 전송됩니다. 포그라운드 상태의 앱인 경우 콜백 함수가 메시지를 처리합니다.
FCM HTTP v1 API 알림 객체 참고 문서를 사용하여 알림 메시지를 작성하는 데 사용할 수 있는 사전 정의된 키의 전체 목록을 확인할 수 있습니다.
데이터 메시지
선택한 암호화 스키마를 구현하기 위해 FCM 페이로드 data
를 사용하는 방법은 개발자에게 달려 있습니다. 커스텀 키-값 쌍에 예약어를 사용하지 않도록 합니다. 예약어에는 from
, message_type
또는 google.
, gcm.
, gcm.notification.
로 시작하는 단어가 포함됩니다.
다음 예시는 최상위 수준 또는 공통 데이터 필드의 사용법을 보여주며, 메시지를 수신한 모든 플랫폼의 클라이언트가 해석합니다. 각 플랫폼에서 클라이언트 앱이 콜백 함수의 데이터 페이로드를 수신합니다.
{
"message":{
"token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
"data":{
"Nick" : "Mario",
"body" : "great match!",
"Room" : "PortugalVSDenmark"
}
}
}