Серверная часть 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 в разделе Settings (Настройки) консоли 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.
HTTP v1 API FCM – REST API с безопасной авторизацией и гибкими возможностями межплатформенного обмена сообщениями. Firebase Admin SDK основан на этом протоколе и обладает всеми его преимуществами.
Firebase Admin SDK
Firebase Admin SDK обрабатывает аутентификацию с помощью серверной части и упрощает отправку сообщений и управление подписками на темы. С помощью Firebase Admin SDK вы можете:
- Отправка сообщений отдельным экземплярам приложения
- Отправка сообщений в темы и условные операторы, соответствующие одной или нескольким темам.
- Как отправлять сообщения группам устройств
- Как подписывать экземпляры приложения на темы и отменять подписку
- Создавайте полезные нагрузки сообщений, адаптированные для разных целевых платформ.
Чтобы настроить Firebase Admin SDK, ознакомьтесь со статьей Как добавить Firebase Admin SDK на сервер. Если у вас уже есть проект Firebase, начните с раздела Добавьте SDK. Также убедитесь, что на странице настроек Cloud Messaging для вашего проекта включен Firebase Cloud Messaging API (V1). После установки Firebase Admin SDK можно начать писать логику для создания запросов на отправку.
FCM HTTP v1 API
FCM предоставляет FCM HTTP v1 API для разработчиков, которые предпочитают необработанный серверный протокол.
Чтобы отправить сообщение, сервер приложения отправляет запрос POST с заголовком HTTP и телом HTTP, состоящим из пар "ключ-значение" JSON. Подробные сведения о параметрах заголовка и тела запроса приведены в статье Отправка сообщения с помощью FCM HTTP v1 API.