FCM Architectural Overview (FCM 아키텍처 개요)
https://firebase.google.com/docs/cloud-messaging/fcm-architecture
FCM relies on the following set of components that build, transport, and receive messages:
FCM 은 다음 세트의 component로 구성 되어있다. build, transport, receive messages
1. Tooling to compose or build message requests. The Notifications composer provides a GUI-based option for creating notification requests. For full automation and support for all message types, you must build message requests in a trusted server environment that supports the Firebase Admin SDK or the FCM server protocols. This environment could be Cloud Functions for Firebase, App Engine, or your own app server.
메시지 요청을 작성하거나 build하기 위한 도구입니다. notification composer 는 노티 요청을 만드는데 GUI(그래픽 유저 인터페이스) 기반한 옵션들을 제공한다. 모든 메시지 타입을 완전히 자동화 하고 지원하려면 당신은 메시지 요청을 믿을 수 있는 서버 환경 -> Firebase admin Sdk 또는 FCM server protocol을 지지원하는 서버환경에서 요청해야만 합니다. 이 환경은 Firebaes 의 Cloud function이나 App engine 이거나 또는 당신이 가지고 있는 앱 서버 일 수 있습니다.
2. The FCM backend, which (among other functions) accepts message requests, performs fanout of messages via topics, and generates message metadata such as the message ID.
FCM 백엔드는 (다른 기능 중에서) 메시지 요청을 accept하고, topics를 통해 메시지의 팬아웃을 수행하며, message ID와 같은 메시지 메타데이터를 생성한다.
3. A platform-level transport layer, which routes the message to the targeted device, handles message delivery, and applies platform-specific configuration where appropriate. This transport layer includes:
대상 장치로 메시지를 라우트하고, 메시지 배달을 처리하며, 필요한 경우 플랫폼별 구성을 적용하는 플랫폼 수준 전송 계층입니다
- Android transport layer (ATL) for Android devices with Google Play services
- Google Play 서비스가 포함된 Android 장치용 Android 전송 계층(ATL)
- Apple Push Notification service (APNs) for Apple devices
- Apple 장치용 APN(Apple Push Notification Service)
- Web push protocol for web apps
4. The FCM SDK on the user’s device, where the notification is displayed or the message is handled according to the app’s foreground/background state and any relevant application logic.
notificaiton이 보여지거나 메시지가 app foreground/background 상태, 그리고 관련된 애플리케이션 로직에 따라 메시지가 handle 되는 당신의 기기에 FCM SDK
Lifecycle flow
- Register devices to receive messages from FCM. An instance of a client app registers to receive messages, obtaining a registration token that uniquely identifies the app instance.
FCM으로부터 메시지를 받기 위해 device를 등록하라. 클라이언트 앱의 인스턴스가 메시지를 수신하도록 등록되어 앱 인스턴스를 유니크하게 식별하는 등록 토큰을 얻습니다.
- Send and receive downstream messages.
- Send a message. The app server sends messages to the client app:
- The message is composed, either in the Notifications composer or a trusted environment, and a message request is sent to the FCM backend.
- The FCM backend receives the message request, generates a message ID and other metadata, and sends it to the platform specific transport layer.
- When the device is online, the message is sent via the platform-specific transport layer to the device.
- On the device, the client app receives the message or notification.
- Send a message. The app server sends messages to the client app:
다운스트림 메시지를 보내고 받습니다.
메시지를 보내세요. 앱서버는 클라이언트 앱에게 메시지를 보냅니다.1. 메시지는 Notifications Composer 또는 신뢰할 수 있는 환경에서 구성되며 메시지 요청은 FCM 백엔드로 전송됩니다.
2. FCM 백엔드는 메시지 요청을 수신하고 메시지 ID 및 기타 메타데이터를 생성하여 플랫폼별 전송 계층으로 전송합니다.
3. 디바이스가 온라인 일 때, 메시지는 플랫폼별 전송계층을 통해 기기로 전달 됩니다.
4. 장치에서 클라이언트 앱은 메시지 또는 알림을 수신합니다.
'개발 > Firebase' 카테고리의 다른 글
Android channel 중요도 수준에 따른 FCM 동작 (0) | 2022.12.09 |
---|---|
Firebase 번역 -Firebase Cloud Messaging(1-3) (0) | 2022.12.03 |
Firebase 번역 -Firebase Cloud Messaging(1-1) (0) | 2022.12.03 |
flutter firebase query 갯수 집계하기 (0) | 2022.11.25 |
firebase function 오류-> Error: data must only contain string values (0) | 2022.11.19 |