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