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

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