Обзор архитектуры FCM

FCM опирается на следующий набор компонентов, которые создают, передают и получают сообщения:

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

    Схема трех уровней архитектуры, описанных на этой странице.

  2. Серверная часть FCM, которая (помимо других функций) принимает запросы сообщений, выполняет разветвление сообщений по темам и генерирует метаданные сообщения, такие как идентификатор сообщения.

  3. Транспортный уровень платформы, который направляет сообщение на целевое устройство, обрабатывает доставку сообщения и при необходимости применяет специфичную для платформы конфигурацию. Этот транспортный уровень включает в себя:

    • Транспортный уровень Android (ATL) для устройств Android с сервисами Google Play
    • Служба Apple Push Notification (APN) для устройств Apple
    • Протокол веб-push для веб-приложений

  4. FCM SDK на устройстве пользователя, где отображается уведомление или обрабатывается сообщение в соответствии с активным/фоновым состоянием приложения и любой соответствующей логикой приложения.

Поток жизненного цикла

  • Зарегистрируйте устройства для получения сообщений от FCM . Экземпляр клиентского приложения регистрируется для получения сообщений, получая токен регистрации, который однозначно идентифицирует экземпляр приложения.
  • Отправлять и получать нисходящие сообщения .
    • Отправить сообщение. Сервер приложений отправляет сообщения клиентскому приложению:
      1. Сообщение составляется либо в компоновщике уведомлений, либо в доверенной среде, и запрос сообщения отправляется на серверную часть FCM.
      2. Серверная часть FCM получает запрос сообщения, генерирует идентификатор сообщения и другие метаданные и отправляет их на транспортный уровень конкретной платформы.
      3. Когда устройство подключено к сети, сообщение отправляется через транспортный уровень платформы на устройство.
      4. На устройстве клиентское приложение получает сообщение или уведомление.