Серверная часть Firebase Cloud Messaging состоит из двух компонентов:
- Бэкенд FCM предоставлен компанией Google.
- Ваш сервер приложений или другая доверенная серверная среда , где выполняется ваша серверная логика, например, Cloud Functions for Firebase или другие облачные среды, управляемые Google.
Ваш сервер приложений или среда доверенного сервера отправляет запросы на сообщения в бэкэнд FCM , который затем перенаправляет сообщения клиентским приложениям, работающим на устройствах пользователей.
Используя Firebase Admin SDK или протоколы сервера приложений FCM , вы можете формировать запросы сообщений и отправлять их следующим типам целей:
- Название темы
- Состояние
- регистрационный токен FCM
- Название группы устройств (только для протокола)
Вы можете отправлять сообщения с полезной нагрузкой уведомления, состоящей из предопределенных полей, с полезной нагрузкой данных, состоящей из ваших собственных пользовательских полей, или с сообщением, содержащим оба типа полезной нагрузки. Дополнительную информацию см. в разделе «Типы сообщений» .
Требования к среде доверенного сервера
Ваша среда сервера приложений должна соответствовать следующим критериям:
- Возможность отправлять запросы в правильно отформатированном виде на серверную часть FCM .
- Способен обрабатывать запросы и повторно отправлять их с использованием экспоненциальной задержки.
- Возможность безопасного хранения учетных данных авторизации сервера и токенов регистрации клиентов.
Необходимые учетные данные для проекта Firebase
В зависимости от того, какие функции FCM вы используете, вам могут потребоваться следующие учетные данные из вашего проекта Firebase:
| Удостоверение личности | Описание |
|---|---|
| Идентификатор проекта | Уникальный идентификатор вашего проекта Firebase, используемый в запросах к HTTP-конечной точке FCM v1. Это значение доступно в панели настроек консоли Firebase . |
| Регистрационный токен | Уникальная строка токена, идентифицирующая каждый экземпляр клиентского приложения. Регистрационный токен необходим для обмена сообщениями между отдельными экземплярами приложений и группами устройств. Обратите внимание, что регистрационные токены должны храниться в секрете. |
| Идентификатор отправителя | Уникальное числовое значение, создаваемое при создании проекта Firebase, доступно на вкладке Cloud Messaging в панели настроек консоли Firebase . Идентификатор отправителя совпадает с номером проекта. Идентификатор отправителя используется для идентификации каждого отправителя, который может отправлять сообщения клиентскому приложению. |
| токен доступа | Кратковременный токен OAuth 2.0, авторизующий запросы к API HTTP v1. Этот токен связан с учетной записью службы, принадлежащей вашему проекту Firebase. Чтобы создать и обновить токены доступа, выполните действия, описанные в разделе «Авторизация отправки запросов» . |
Выберите вариант сервера
Вам нужно будет выбрать способ взаимодействия с серверами FCM : либо использовать Firebase Admin SDK , либо API FCM HTTP v1 . Благодаря поддержке популярных языков программирования и удобным методам аутентификации и авторизации, Firebase Admin SDK является рекомендуемым методом.
К вариантам взаимодействия с серверами FCM относятся следующие:
Firebase Admin SDK , поддерживающий Node , Java , Python , C# и Go .
FCM HTTP v1 API — это REST API с безопасной авторизацией и гибкими возможностями кроссплатформенного обмена сообщениями ( Firebase Admin SDK основан на этом протоколе и предоставляет все его преимущества).
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 v1 API
FCM предоставляет API FCM HTTP v1 для разработчиков, которые предпочитают использовать протокол прямого доступа к серверу.
Для отправки сообщения сервер приложений отправляет POST-запрос с HTTP-заголовком и HTTP-телом, состоящим из пар ключ-значение в формате JSON. Подробную информацию о параметрах заголовка и тела см. в разделе «Отправка сообщения с использованием API FCM HTTP v1» .