Ваша серверная среда и FCM

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

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

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

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

  • Название темы
  • Состояние
  • регистрационный токен FCM
  • Название группы устройств (только для протокола)

You can send messages with a notification payload made up of predefined fields, a data payload of your own user-defined fields, or a message containing both types of payload. See Message types for more information.

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

Ваша среда сервера приложений должна соответствовать следующим критериям:

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

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

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

Удостоверение личности Описание
Идентификатор проекта Уникальный идентификатор вашего проекта Firebase, используемый в запросах к HTTP-конечной точке FCM v1. Это значение доступно в панели настроек консоли Firebase .
Регистрационный токен A unique token string that identifies each client app instance. The registration token is required for single app instance and device group messaging. Note that registration tokens must be kept secret.
Идентификатор отправителя A unique numerical value created when you create your Firebase project, available in the Cloud Messaging tab of the Firebase console Settings pane. The sender ID is the same as the project number. The sender ID is used to identify each sender that can send messages to the client app.
токен доступа A short-lived OAuth 2.0 token that authorizes requests to the HTTP v1 API. This token is associated with a service account that belongs to your Firebase project. To create and rotate access tokens, follow the steps described in Authorize Send Requests .

Выберите вариант сервера

You'll need to decide on a way to interact with FCM servers: either using the Firebase Admin SDK or the FCM HTTP v1 API . Because of its support across popular programming languages and its convenience methods for handling authentication and authorization, the Firebase Admin SDK is the recommended method.

К вариантам взаимодействия с серверами FCM относятся следующие:

Firebase Admin SDK

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

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

To set up the Firebase Admin SDK , see Add the Firebase Admin SDK to Your Server . If you already have a Firebase project, start with Add the SDK . Also, make sure to enable the Firebase Cloud Messaging API (V1) in the Cloud Messaging settings page for your project. Then, once the Firebase Admin SDK is installed, you can start writing logic to build send requests .

FCM HTTP v1 API

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

To send a message, the app server issues a POST request with an HTTP header and an HTTP body comprised of JSON key value pairs. For details on the header and body options, see Send a Message using FCM HTTP v1 API .