Серверная часть 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, который поддерживает 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 предоставляет FCM HTTP v1 API для разработчиков, которые предпочитают использовать необработанный протокол сервера.
Чтобы отправить сообщение, сервер приложения отправляет запрос POST с заголовком HTTP и телом HTTP, состоящим из пар "ключ-значение" JSON. Подробные сведения о параметрах заголовка и тела запроса приведены в статье Отправка сообщения с помощью FCM HTTP v1 API.