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

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

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

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

  2. Бэкенд FCM, который, помимо прочего, принимает запросы на отправку сообщений, рассылает сообщения по темам и генерирует метаданные сообщений, например идентификаторы.

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

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

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

Жизненный цикл

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