Среда сервера и FCM

Серверная часть Firebase Cloud Messaging состоит из двух компонентов:

  • Бэкэнд FCM от Google.
  • Сервер приложения или другая надежная серверная среда, в которой выполняется логика сервера, например Cloud Functions for Firebase или другие облачные среды, управляемые Google.

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

С помощью протоколов серверных приложений Firebase Admin SDK или FCM можно создавать запросы сообщений и отправлять их на следующие типы целевых объектов:

  • Название темы
  • Условие
  • Токен регистрации FCM
  • Название группы устройств (поддержка прекращена, будет удалено 29 сентября 2027 г.)

Вы можете отправлять сообщения с полезной нагрузкой уведомления, состоящей из стандартных полей, полезной нагрузкой данных, состоящей из заданных вами полей, или сообщением, содержащим оба типа полезной нагрузки. Подробнее о типах сообщений…

Требования к доверенной серверной среде

Среда сервера приложения должна соответствовать следующим требованиям:

  • Отправлять запросы на переписку в правильном формате на серверную часть FCM.
  • Умеет обрабатывать запросы и отправлять их повторно с использованием экспоненциальной выдержки.
  • Возможность безопасного хранения учетных данных для авторизации сервера и токенов регистрации клиента.

Необходимые учетные данные для проекта Firebase

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

Учетные данные Описание
Идентификатор проекта Уникальный идентификатор проекта Firebase, используемый в запросах к конечной точке HTTP FCM версии 1. Это значение можно найти на панели Firebase console Settings.
Токен регистрации Уникальная строка токена, которая идентифицирует каждый экземпляр клиентского приложения. Токен регистрации необходим для обмена сообщениями с одним экземпляром приложения и группой устройств. Обратите внимание, что регистрационные токены должны быть секретными.
Идентификатор отправителя Уникальное числовое значение, созданное при создании проекта Firebase. Его можно найти на вкладке Cloud Messaging в панели Настройки консоли Firebase. Идентификатор отправителя совпадает с номером проекта. Идентификатор отправителя используется для идентификации каждого отправителя, который может отправлять сообщения в клиентское приложение.
Токен доступа Кратковременный токен OAuth 2.0, который авторизует запросы к HTTP v1 API. Этот токен связан с сервисным аккаунтом, который принадлежит вашему проекту Firebase. Чтобы создать и сменить токены доступа, выполните инструкции из раздела Авторизация запросов на отправку.

Как выбрать сервер

Вам нужно выбрать способ взаимодействия с серверами FCM: с помощью Firebase Admin SDK или FCM HTTP v1 API. Firebase Admin SDK – рекомендуемый метод, поскольку он поддерживается популярными языками программирования и удобен для обработки аутентификации и авторизации.

Варианты взаимодействия с серверами FCM:

Firebase Admin SDK

Firebase Admin SDK отвечает за аутентификацию на сервере и позволяет отправлять сообщения и управлять подписками на темы. С помощью Firebase Admin SDK вы можете:

  • Как отправлять сообщения отдельным экземплярам приложений
  • Отправка сообщений в темы и условные операторы, соответствующие одной или нескольким темам
  • Отправка сообщений группам устройств
  • Как подписывать и отписывать экземпляры приложений на темы
  • Создание полезной нагрузки сообщений, адаптированной для разных целевых платформ

Инструкции по настройке Firebase Admin SDK приведены в статье Как добавить Firebase Admin SDK на сервер. Если у вас уже есть проект Firebase, перейдите к разделу Добавление SDK. Также убедитесь, что Firebase Cloud Messaging API (V1) включен на странице настроек Cloud Messaging для вашего проекта. После установки Firebase Admin SDK вы можете начать писать код для создания запросов на отправку.

FCM HTTP API версии 1

FCM предоставляет FCM HTTP v1 API для разработчиков, которые предпочитают использовать необработанный протокол сервера.

Чтобы отправить сообщение, сервер приложения отправляет запрос POST с заголовком HTTP и телом HTTP, состоящим из пар "ключ-значение" в формате JSON. Подробнее об отправке сообщений с помощью HTTP API FCM версии 1…