На этой странице приведены ответы на часто задаваемые вопросы о Cloud Messaging и советы по устранению неполадок.
В чем разница между инструментом создания уведомлений и FCM?
Firebase Cloud Messaging предоставляет полный набор функций обмена сообщениями через клиентские пакеты SDK и протокол HTTP-сервера. Если вам нужны более сложные функции обмена сообщениями, выбирайте FCM.
Компоновщик уведомлений – это простое бессерверное решение для обмена сообщениями, созданное на основе Firebase Cloud Messaging. Удобная графическая консоль и минимальные требования к написанию кода позволяют пользователям отправлять сообщения, чтобы повторно привлекать и удерживать пользователей, развивать приложение и поддерживать маркетинговые кампании.
| Возможности |
|
Создание уведомлений |
Cloud Messaging |
| Цель |
На одно устройство |
|
|
|
Клиенты, подписанные на темы (например, погода) |
|
|
|
Клиенты в стандартном сегменте пользователей (приложение, версия, язык) |
|
|
|
Клиенты из указанных аудиторий Analytics |
|
|
|
Клиенты в группах устройств |
|
|
|
От клиента к серверу |
|
|
| Тип сообщения |
Уведомления размером до 2 КБ |
|
|
|
Сообщения с данными размером до 4 КБ |
|
|
| Доставка |
Немедленно |
|
|
|
Местное время клиентского устройства в будущем |
|
|
| Аналитика |
Встроенный сбор данных аналитики уведомлений и воронка аналитики |
|
|
Нужно ли использовать другие сервисы Firebase, чтобы работать в FCM?
Firebase Cloud Messaging можно использовать как отдельный компонент, не прибегая к другим сервисам Firebase.
Почему целевые устройства не получают сообщения?
Если устройства не получают сообщения, сначала проверьте, не связаны ли проблемы с двумя возможными причинами:
Обработка уведомлений в активном приложении. Клиентским приложениям необходимо добавить логику обработки сообщений, чтобы обрабатывать уведомления, когда приложение находится на устройстве на переднем плане. Подробная информация приведена в статьях о iOS и Android.
Ограничения сетевого брандмауэра. Если в вашей организации используется брандмауэр, ограничивающий трафик в интернет и из него, вам необходимо настроить его так, чтобы разрешить подключение к FCM. Это нужно, чтобы клиентские приложения Firebase Cloud Messaging могли получать сообщения. Откройте следующие порты:
FCM обычно использует порт 5228, но иногда может использовать порты 5229 и 5230.
FCM не предоставляет определенные IP-адреса, поэтому вам следует разрешить брандмауэру принимать исходящие подключения ко всем IP-адресам, содержащимся в IP-блоках, перечисленных в ASN 15169 Google.
Почему в моем приложении для Android не вызывается метод onMessageReceived?
Когда приложение работает в фоновом режиме, уведомления отображаются в области уведомлений, а метод onMessageReceived не вызывается. Для уведомлений с полезной нагрузкой данных сообщение уведомления отображается в области уведомлений, а данные, включенные в сообщение уведомления, можно получить из интента, запущенного, когда пользователь нажимает на уведомление.
Подробнее о том, как получать и обрабатывать сообщения…
Почему при отправке сообщений в активный экземпляр приложения, восстановленный из резервной копии, появляется ошибка 404?
Идентификатор установки Firebase – это идентификатор экземпляра приложения. По умолчанию данные установки Firebase копируются в резервную копию и восстанавливаются. Таким образом, при восстановлении экземпляра приложения он и исходный экземпляр будут иметь один и тот же идентификатор FID. Поскольку FCM хранит только один токен для каждого идентификатора установки, если используются и исходный, и восстановленный экземпляры приложения, то при регистрации одного из них в FCM токен другого удаляется, что приводит к ошибкам 404.
Мы рекомендуем разработчикам сделать следующее:
- Исключить данные об установке Firebase из резервной копии. Данные об установке Firebase хранятся в файле
PersistedInstallation....json. Имя файла является константой для приложения. Например, <exclude domain="file" path="PersistedInstallation.W0R...GQ.json"
/>.
Компания Apple объявила, что прекращает поддержку устаревшего двоичного протокола для APNs. Нужно ли мне что-то сделать?
Нет. В 2017 году Firebase Cloud Messaging перешел на протокол APNs на основе HTTP/2.
Если вы используете FCM для отправки уведомлений на устройства iOS, вам не нужно предпринимать никаких действий.
Квоты и ограничения FCM
Как уведомить большую базу клиентов за две минуты?
Этот вариант использования не поддерживается. Трафик должен быть распределен на пять минут.
Мое приложение отправляет пользователям уведомления о событиях, и эти сообщения должны доставляться немедленно, чтобы поддерживать мою бизнес-модель. Можно ли увеличить квоту?
К сожалению, мы не можем увеличить квоту по этой причине. Чтобы избежать резких скачков трафика, распределите его на пять минут.
Мои сообщения связаны с запланированными мероприятиями. Как отправлять весь трафик в начале часа?
Рекомендуем начать отправлять уведомления не менее чем за пять минут до начала мероприятия. Вы также можете отправлять сообщения с данными и реализовать аналог обработчика onMessageReceived для вашей платформы, чтобы заранее запланировать отправку локальных уведомлений.
Ошибки 429 сложно устранять мне и моей компании. Можно ли получить исключение или увеличить квоту, чтобы избежать ошибок 429?
Мы понимаем, что ограничения квот могут быть неудобными, но они необходимы для обеспечения надежности сервиса, поэтому мы не можем делать исключения. Используйте повторные попытки, чтобы правильно обрабатывать ошибки 429.
Сколько времени занимает обработка запроса на увеличение квоты?
Запрос на увеличение квоты зависит от того, как вы используете FCM. В любом случае мы ответим вам в течение нескольких рабочих дней. В некоторых случаях может потребоваться дополнительная информация о том, как вы используете FCM, и это может продлить процесс. Если все требования выполнены, большинство запросов обрабатываются в течение двух недель.
Можно ли увеличить квоту для временного мероприятия?
Вы можете запросить дополнительную квоту для мероприятия, которое продлится до одного месяца.
Запрос необходимо подать не позднее чем за месяц до начала мероприятия. В нем нужно указать точное время начала и окончания мероприятия. FCM приложит все усилия, чтобы выполнить запрос. Если запрос будет одобрен, после окончания мероприятия лимит будет возвращен к прежнему значению.
FCM Прекращение поддержки устаревших API
Прекращение поддержки API на стороне сервера в сентябре 2026 г.
Какие API и функции устарели и будут отключены? Что делать, если я использую эти API?
Все серверные API InstanceID и функция групп устройств устарели и будут отключены 29 сентября 2027 г. В таблице ниже приведена дополнительная информация об устаревших API и функциях, а также о необходимых действиях.
| Название API
|
Конечная точка API
|
Использование по назначению
|
Влияние на клиентов
|
Требуется действие
|
| InstanceId info API
|
https://iid.googleapis.com/iid/info
|
Как получить информацию, связанную с InstanceId или токеном FCM
|
После 29 сентября 2027 г. запросы к этому API начнут завершаться с ошибкой.
|
Если вы используете API для проверки токенов, используйте FCM V1 send API и установите для параметра validate_only значение true.
Если вы используете API для получения информации о подписках на темы, перейдите на новый API для подписок на темы.
|
| InstanceId topic subscription API
|
https://iid.googleapis.com/iid/v1/…/rel/topics
https://iid.googleapis.com/iid/v1:batchAdd
https://iid.googleapis.com/iid/v1:batchRemove
|
Подписка токенов на тему с помощью устаревшего API подписки на темы.
|
После 29 сентября 2027 г. запросы к этим API начнут завершаться с ошибкой.
|
Перейдите на новый сервер подписки на темы FCM
для подписки и отмены подписки на темы.
|
| API пакетного импорта InstanceID
|
https://iid.googleapis.com/iid/v1:batchImport
|
Создание токенов FCM для iOS на стороне сервера.
|
После 29 сентября 2027 г. запросы к этому API начнут завершаться с ошибкой.
Создание регистраций FCM на основе токенов APNs на стороне сервера не будет поддерживаться.
|
Вы можете использовать сервис APNs от Apple, чтобы отправлять уведомления с помощью токенов APNs.
Чтобы получить дополнительные преимущества, которые предоставляет FCM, интегрируйте в приложение FCM iOS SDK. Это позволит создавать регистрации FCM на стороне клиента.
|
| Device group management API
|
https://fcm.googleapis.com/fcm/notification
https://fcm.googleapis.com/gcm/notification
https://fcm.googleapis.com/iid/notification
https://fcm.googleapis.com/notification
|
Добавление, удаление и получение участников группы устройств.
|
После 29 сентября 2027 г. запросы к этому API начнут завершаться с ошибкой.
|
Ознакомьтесь с руководством по переносу данных.
Сообщения по-прежнему можно отправлять на отдельные регистрации FCM, а не на токены групп.
|
| Отправка в группу устройств
|
https://fcm.googleapis.com/v1/projects/…/messages:send
|
Отправка сообщений группам устройств с помощью ключа уведомлений группы.
|
Этот API продолжит работать, но после 29 сентября 2027 г. он не будет поддерживать токены групп устройств.
|
Если я использую Firebase Admin SDK для управления подписками на темы, повлияет ли на меня прекращение поддержки? Что делать?
Если вы используете более ранние версии Firebase Admin SDK для управления подписками на темы, прекращение поддержки повлияет на вас.
Вам нужно обновить Firebase Admin SDK до следующих версий:
| Платформа
|
Версия Admin SDK, на которую влияет проблема
|
Версия Admin SDK, на которую нужно перейти
|
| Node.js
|
<=14.4.0
|
>=14.5.0
|
| Python
|
<=7.6.0
|
>=7.7.0
|
| Java
|
<=9.10.0
|
>=9.11.0
|
| Проложить маршрут
|
<=4.21.0
|
>=4.22.0
|
| .NET
|
<=3.6.0
|
>=3.7.0
|
Будет ли понижена версия сервиса до 29 сентября 2027 г.?
Нет. У вас есть 12 месяцев, чтобы перейти с устаревших API на альтернативные без ухудшения качества сервиса. Мы настоятельно рекомендуем запланировать переход как можно раньше, чтобы избежать проблем, связанных с отключением.
После 29 сентября 2027 г. при вызове устаревших API будут возникать ошибки.
Могут ли новые пользователи начать работу с устаревшими API или функциями до их отключения?
Новые пользователи могут начать работу с устаревшими API и функциями до 1 января 2027 г.
После 1 января 2027 г. новые пользователи не смогут использовать устаревшие API.
Пользователи, которые используют устаревшие API, смогут продолжать работать с ними до 29 сентября 2027 г.