Серверная часть Firebase Cloud Messaging состоит из двух компонентов:
- Бэкенд FCM предоставлен компанией Google.
- Ваш сервер приложений или другая доверенная серверная среда , где выполняется ваша серверная логика, например, Cloud Functions for Firebase или другие облачные среды, управляемые Google.
Your app server or trusted server environment sends message requests to the FCM backend, which then routes messages to client apps running on users' devices.
Using the Firebase Admin SDK or FCM app server protocols, you can build message requests and send them to these types of targets:
- Название темы
- Состояние
- регистрационный токен FCM
- Название группы устройств (только для протокола)
Вы можете отправлять сообщения с полезной нагрузкой уведомления, состоящей из предопределенных полей, с полезной нагрузкой данных, состоящей из ваших собственных пользовательских полей, или с сообщением, содержащим оба типа полезной нагрузки. Дополнительную информацию см. в разделе «Типы сообщений» .
Требования к среде доверенного сервера
Your app server environment must meet the following criteria:
- Able to send properly formatted message requests to the FCM backend.
- Able to handle requests and resend them using exponential back-off.
- Able to securely store server authorization credentials and client registration tokens.
Необходимые учетные данные для проекта Firebase
Depending on which FCM features you implement, you may need the following credentials from your Firebase project:
| Удостоверение личности | Описание |
|---|---|
| Идентификатор проекта | A unique identifier for your Firebase project, used in requests to the FCM v1 HTTP endpoint. This value is available in the Firebase console Settings pane. |
| Регистрационный токен | Уникальная строка токена, идентифицирующая каждый экземпляр клиентского приложения. Регистрационный токен необходим для обмена сообщениями между отдельными экземплярами приложений и группами устройств. Обратите внимание, что регистрационные токены должны храниться в секрете. |
| Идентификатор отправителя | Уникальное числовое значение, создаваемое при создании проекта Firebase, доступно на вкладке Cloud Messaging в панели настроек консоли Firebase . Идентификатор отправителя совпадает с номером проекта. Идентификатор отправителя используется для идентификации каждого отправителя, который может отправлять сообщения клиентскому приложению. |
| токен доступа | Кратковременный токен OAuth 2.0, авторизующий запросы к API HTTP v1. Этот токен связан с учетной записью службы, принадлежащей вашему проекту Firebase. Чтобы создать и обновить токены доступа, выполните действия, описанные в разделе «Авторизация отправки запросов» . |
Выберите вариант сервера
Вам нужно будет выбрать способ взаимодействия с серверами FCM : либо использовать Firebase Admin SDK , либо API FCM HTTP v1 . Благодаря поддержке популярных языков программирования и удобным методам аутентификации и авторизации, Firebase Admin SDK является рекомендуемым методом.
Options for interacting with FCM servers include the following:
The Firebase Admin SDK , which has support for Node , Java , Python , C# , and Go .
FCM HTTP v1 API — это REST API с безопасной авторизацией и гибкими возможностями кроссплатформенного обмена сообщениями ( Firebase Admin SDK основан на этом протоколе и предоставляет все его преимущества).
Firebase Admin SDK
The Firebase Admin SDK handles authenticating with the backend and facilitates sending messages and managing topic subscriptions. With the Firebase Admin SDK , you can:
- Отправка сообщений отдельным экземплярам приложения
- Send messages to topics and condition statements that match one or more topics
- Отправка сообщений группам устройств
- Subscribe and unsubscribe app instances to and from topics
- Construct message payloads tailored to different target platforms
Чтобы настроить Firebase Admin SDK , см. раздел «Добавление Firebase Admin SDK на ваш сервер» . Если у вас уже есть проект Firebase, начните с добавления SDK . Также убедитесь, что Firebase Cloud Messaging API (V1) включен на странице настроек Cloud Messaging для вашего проекта. После установки Firebase Admin SDK вы можете начать писать логику для создания запросов на отправку .
FCM HTTP v1 API
FCM provides the FCM HTTP v1 API for developers who prefer a raw server protocol.
Для отправки сообщения сервер приложений отправляет POST-запрос с HTTP-заголовком и HTTP-телом, состоящим из пар ключ-значение в формате JSON. Подробную информацию о параметрах заголовка и тела см. в разделе «Отправка сообщения с использованием API FCM HTTP v1» .