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

Серверная часть FCM, которая (помимо прочего) принимает запросы сообщений, выполняет рассылку сообщений по темам и генерирует метаданные сообщений, такие как идентификатор сообщения.
Транспортный уровень платформы, который направляет сообщение на целевое устройство, обеспечивает доставку и применяет конфигурацию, относящуюся к платформе. Этот транспортный уровень включает:
- Транспортный уровень Android (ATL) для устройств Android с сервисами Google Play
- Служба уведомлений Apple Push (APNs) для устройств Apple
Протокол push-уведомлений для веб-приложений
FCM SDK на устройстве пользователя, где показывается уведомление или обрабатывается сообщение в зависимости от того, работает ли приложение в фоновом или активном режиме, а также от логики приложения.
Жизненный цикл
- Зарегистрируйте устройства, чтобы получать сообщения от FCM. Экземпляр клиентского приложения регистрируется для получения сообщений и получает регистрационный токен, который уникальным образом идентифицирует экземпляр приложения.
- Отправлять и получать сообщения от сервера.
- Отправить сообщение Сервер приложения отправляет сообщения клиентскому приложению:
- Сообщение создается в конструкторе уведомлений или доверенной среде, а затем запрос на отправку сообщения отправляется в серверную часть FCM.
- Серверная часть FCM получает запрос сообщения, генерирует идентификатор сообщения и другие метаданные и отправляет их на транспортный уровень, относящийся к определенной платформе.
- Когда устройство подключено к интернету, сообщение отправляется на него через транспортный уровень, характерный для платформы.
- Клиентское приложение на устройстве получает сообщение или уведомление.
- Отправить сообщение Сервер приложения отправляет сообщения клиентскому приложению: