FCM은 메시지를 작성, 전송, 수신하는 다음 구성요소 집합을 사용합니다.
메시지 요청을 작성하거나 구현하는 도구: 알림 작성기는 알림 요청을 만들기 위한 GUI 기반 옵션을 제공합니다. 모든 메시지 유형을 완벽하게 자동화하고 지원하려면 Firebase Admin SDK 또는 FCM 서버 프로토콜을 지원하는 신뢰할 수 있는 서버 환경에서 메시지 요청을 구현해야 합니다. 이 환경은 Firebase용 Cloud Functions, App Engine 또는 자체 앱 서버일 수 있습니다.
FCM 백엔드: 메시지 요청을 수락하는 등 여러 기능을 수행하는 FCM 백엔드는 주제를 통해 메시지 팬아웃을 수행하고 메시지 ID와 같은 메시지 메타데이터를 생성합니다.
플랫폼 수준 전송 레이어: 기기로 타겟팅된 메시지를 라우팅하고, 메시지 전송을 처리하고, 필요한 경우 플랫폼별 구성을 적용합니다. 이 전송 레이어에는 다음이 포함됩니다.
- Google Play 서비스를 사용하는 Android 기기용 Android 전송 레이어(ATL)
- Apple 기기용 Apple 푸시 알림 서비스(APN)
웹 앱용 웹 푸시 프로토콜
사용자 기기의 FCM SDK: 알림이 표시되거나 앱의 포그라운드/백그라운드 상태 및 관련 애플리케이션 로직에 따라 메시지가 처리됩니다.
수명 주기 흐름
- FCM에서 메시지를 수신하도록 기기를 등록합니다. 클라이언트 앱의 인스턴스가 메시지를 수신하도록 등록하여 앱 인스턴스를 고유하게 식별하는 등록 토큰을 받습니다.
- 다운스트림 메시지 전송 및 수신
- 메시지를 보냅니다. 앱 서버가 클라이언트 앱에 메시지를 보냅니다.
- 메시지는 알림 작성기 또는 신뢰할 수 있는 환경에서 작성되며 메시지 요청이 FCM 백엔드로 전송됩니다.
- FCM 백엔드는 메시지 요청을 수신하고 메시지 ID와 기타 메타데이터를 생성하여 플랫폼별 전송 레이어로 보냅니다.
- 기기가 온라인 상태이면 메시지가 플랫폼별 전송 레이어를 통해 기기로 전송됩니다.
- 기기에서 클라이언트 앱이 메시지 또는 알림을 수신합니다.
- 메시지를 보냅니다. 앱 서버가 클라이언트 앱에 메시지를 보냅니다.