Обзор архитектуры FCM
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
FCM использует следующий набор компонентов, которые создают, передают и получают сообщения:
Инструменты для создания и формирования запросов на уведомления. Компоновщик уведомлений предоставляет графический интерфейс для создания запросов на уведомления. Для полной автоматизации и поддержки всех типов сообщений необходимо создавать запросы в доверенной серверной среде , поддерживающей Firebase Admin SDK или протокол сервера FCM. Этой средой может быть Cloud Functions for Firebase, App Engine или ваш собственный сервер приложений.

Бэкэнд FCM, который (помимо прочих функций) принимает запросы сообщений, осуществляет разветвление сообщений по темам и генерирует метаданные сообщений, такие как идентификатор сообщения.
Транспортный уровень уровня платформы, который направляет сообщение целевому устройству, управляет доставкой сообщения и при необходимости применяет конфигурацию, специфичную для платформы. Этот транспортный уровень включает в себя:
FCM SDK на устройстве пользователя, где уведомление отображается или сообщение обрабатывается в соответствии с состоянием приложения (в приоритетном/фоновом режиме) и любой соответствующей логикой приложения.
Поток жизненного цикла
- Регистрация устройств для получения сообщений от FCM . Экземпляр клиентского приложения регистрируется для получения сообщений, получая регистрационный токен, который уникально идентифицирует экземпляр приложения.
- Отправлять и получать нисходящие сообщения .
- Отправка сообщения. Сервер приложений отправляет сообщения клиентскому приложению:
- Сообщение создается либо в редакторе уведомлений, либо в доверенной среде, а запрос на сообщение отправляется в бэкэнд FCM.
- Бэкэнд FCM получает запрос на сообщение, генерирует идентификатор сообщения и другие метаданные и отправляет его на транспортный уровень конкретной платформы.
- Когда устройство подключено к сети, сообщение отправляется на устройство через транспортный уровень, специфичный для платформы.
- Клиентское приложение на устройстве получает сообщение или уведомление.
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-08-29 UTC.
[null,null,["Последнее обновление: 2025-08-29 UTC."],[],[],null,["\u003cbr /\u003e\n\nFCM relies on the following set of components that build, transport, and receive\nmessages:\n\n1. Tooling to compose or build message requests. The Notifications composer\n provides a GUI-based option for creating notification requests.\n For full automation and support for all\n [message types](https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages),\n you must build message requests in a trusted\n [server environment](https://firebase.google.com/docs/cloud-messaging/server)\n that supports the Firebase Admin SDK or the FCM server protocol.\n This environment could be Cloud Functions for Firebase, App Engine,\n or your own app server.\n\n2. The FCM backend, which (among other functions) accepts message requests,\n performs fanout of messages via topics, and generates message metadata such\n as the message ID.\n\n3. A platform-level transport layer, which routes the message to the targeted\n device, handles message delivery, and applies platform-specific\n configuration where appropriate. This transport layer includes:\n\n - Android transport layer (ATL) for Android devices with Google Play services\n - Apple Push Notification service (APNs) for Apple devices\n - Web push protocol for web apps\n\n | **Note:** Platform-level transport layers are outside the core FCM product. FCM messages routed to a platform-level transport layer may be subject to terms specific to that platform rather than FCM's terms of service. Android message routing via ATL falls under the [Google APIs terms of service](https://www.google.com/url?q=https://developers.google.com/terms/&sa=D&ust=1558536676246000&usg=AFQjCNFrlRMLv51d1S9NkWxD0IoYSqJ2Ng).\n4. The FCM SDK on the user's device, where the notification is displayed or\n the message is handled according to the app's foreground/background state\n and any relevant application logic.\n\nLifecycle flow\n\n- **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.\n- **Send and receive downstream messages** .\n - Send a message. The app server sends messages to the client app:\n 1. The message is composed, either in the Notifications composer or a trusted environment, and a message request is sent to the FCM backend.\n 2. The FCM backend receives the message request, generates a message ID and other metadata, and sends it to the platform specific transport layer.\n 3. When the device is online, the message is sent via the platform-specific transport layer to the device.\n 4. On the device, the client app receives the message or notification."]]