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

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

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

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

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

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

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

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

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

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