На этой странице вы найдете ответы на часто задаваемые вопросы о Cloud Messaging и инструкции по устранению неполадок.
В чем разница между инструментом создания уведомлений и FCM?
Firebase Cloud Messaging предоставляет полный набор возможностей для обмена сообщениями через клиентские SDK и протокол HTTP-сервера. Для развертываний с более сложными требованиями к обмену сообщениями FCM – правильный выбор.
Компоновщик уведомлений – это простое решение для обмена сообщениями без сервера, созданное на основе Firebase Cloud Messaging. Удобная графическая консоль и минимальные требования к написанию кода позволяют пользователям отправлять сообщения, чтобы повторно привлекать и удерживать пользователей, развивать приложение и поддерживать маркетинговые кампании.
| Возможности |
|
Компоновщик уведомлений |
Cloud Messaging |
| Цель |
На одно устройство |
|
|
|
Клиенты, подписанные на темы (например, погода) |
|
|
|
Клиенты в стандартном сегменте пользователей (приложение, версия, язык) |
|
|
|
Клиенты из указанных аудиторий Аналитики |
|
|
|
Клиенты в группах устройств |
|
|
|
От клиента к серверу |
|
|
| Тип сообщения |
Уведомления размером до 2 КБ. |
|
|
|
Сообщения с данными размером до 4 КБ. |
|
|
| Выполнение |
Немедленно |
|
|
|
Местное время на устройстве клиента в будущем |
|
|
| Аналитика |
Встроенный сбор данных аналитики уведомлений и воронка аналитики |
|
|
Нужно ли использовать другие сервисы Firebase, чтобы работать с FCM?
Firebase Cloud Messaging можно использовать как отдельный компонент, не пользуясь другими сервисами Firebase.
Почему целевые устройства не получают сообщения?
Если устройства не получают сообщения, сначала проверьте, не связаны ли проблемы с двумя возможными причинами:
Обработка сообщений на переднем плане для уведомлений. В клиентские приложения необходимо добавить логику обработки сообщений, чтобы обрабатывать уведомления, когда приложение открыто на устройстве. Подробная информация приведена в статьях о iOS и Android.
Ограничения сетевого брандмауэра. Если в вашей организации используется брандмауэр, ограничивающий трафик в интернет и из него, вам необходимо настроить его так, чтобы разрешить подключение к FCM. Это нужно, чтобы клиентские приложения Firebase Cloud Messaging могли получать сообщения. Необходимо открыть следующие порты:
FCM обычно использует порт 5228, но иногда – 5229 и 5230.
FCM не предоставляет конкретные IP-адреса, поэтому в настройках брандмауэра необходимо разрешить исходящие подключения ко всем IP-адресам, содержащимся в блоках, относящихся к номеру AS15169 (владелец – Google).
Почему в моем приложении для Android не вызывается метод onMessageReceived?
Когда приложение работает в фоновом режиме, уведомления показываются в области уведомлений, а метод onMessageReceived не вызывается. Если уведомление содержит полезную нагрузку, оно отображается в области уведомлений, а данные, включенные в него, можно получить из намерения, запущенного при нажатии на уведомление.
Подробнее о том, как получать и обрабатывать сообщения…
Почему при отправке сообщений в активный экземпляр приложения, восстановленный из резервной копии, появляется ошибка 404?
FID (идентификатор установки Firebase) – это идентификатор экземпляра приложения. По умолчанию данные установки Firebase копируются в резервную копию и восстанавливаются. Таким образом, при восстановлении экземпляра приложения он и исходный экземпляр будут иметь один и тот же идентификатор FID. Поскольку FCM хранит только один токен на FID, если используются и исходный, и восстановленный экземпляры приложения, то при регистрации одного из них в 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
Как уведомить большую клиентскую базу за 2 минуты?
Этот вариант использования не поддерживается. Трафик должен быть распределен на пять минут.
Мое приложение отправляет пользователям уведомления о событиях, и эти сообщения должны доставляться немедленно, чтобы поддерживать мою бизнес-модель. Можно ли увеличить квоту?
К сожалению, мы не можем увеличить квоту по этой причине. Чтобы избежать резких скачков трафика, распределите его на пять минут.
Мои сообщения касаются
запланированных событий. Как отправлять весь трафик в начале часа?
Рекомендуем начать отправку уведомлений не менее чем за 5 минут до начала мероприятия. Вы также можете отправлять сообщения с данными и реализовать аналог обработчика 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
|
Запросы к этому API перестанут выполняться после 29 сентября 2027 г.
|
Если вы используете 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 подписки на темы.
|
Запросы к этим API перестанут выполняться после 29 сентября 2027 г.
|
Перейдите на новый серверный API подписки на темы FCM для подписки на темы и отмены подписки.
|
| API пакетного импорта InstanceId
|
https://iid.googleapis.com/iid/v1:batchImport
|
Создание токенов FCM для iOS на стороне сервера.
|
Запросы к этому API перестанут выполняться после 29 сентября 2027 г.
Создание регистраций 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
|
Добавление, удаление и получение участников группы устройств.
|
Запросы к этому API перестанут выполняться после 29 сентября 2027 г.
|
Ознакомьтесь с руководством по переходу на другие функции.
Сообщения по-прежнему можно отправлять на отдельные регистрации FCM, а не на токены групп.
|
| Отправка в группу устройств
|
https://fcm.googleapis.com/v1/projects/…/messages:send
|
Отправка сообщений группам устройств с помощью ключа notification_key.
|
Этот 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 г.