На этой странице вы найдете ответы на часто задаваемые вопросы о Cloud Messaging и инструкции по устранению неполадок.
В чем разница между Компоновщиком уведомлений и FCM?
Firebase Cloud Messaging предоставляет полный набор возможностей для обмена сообщениями через клиентские SDK и протокол HTTP-сервера. Для развертываний с более сложными требованиями к обмену сообщениями FCM – правильный выбор.
Компоновщик уведомлений – это простое решение для обмена сообщениями без сервера, созданное на основе Firebase Cloud Messaging. Благодаря удобной графической консоли и минимальным требованиям к программированию, Компоновщик уведомлений позволяет пользователям отправлять сообщения, чтобы повторно привлекать и удерживать пользователей, способствовать продвижению приложений и поддерживать маркетинговые кампании.
| Возможности |
|
Компоновщик уведомлений |
Cloud Messaging |
| Target |
На одно устройство |
|
|
|
Клиенты, подписанные на темы (например, погода) |
|
|
|
Клиенты в стандартном сегменте пользователей (приложение, версия, язык) |
|
|
|
Клиенты из указанных аудиторий Аналитики |
|
|
|
Клиенты в группах устройств |
|
|
|
От клиента к серверу |
|
|
| Тип сообщения |
Уведомления размером до 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 Installation копируются и восстанавливаются. Таким образом, в случае восстановления у восстановленного и исходного экземпляров приложения будет один и тот же 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 приложит все усилия, чтобы выполнить запрос. Если запрос будет одобрен, то после окончания события квоты будут возвращены к прежним значениям.
Может ли измениться моя текущая квота?
Google не будет менять квоты без веских причин, но может сделать это, если потребуется защитить целостность системы. По возможности Google будет заранее уведомлять вас о таких изменениях. Чтобы повысить вероятность получения служебных уведомлений, поддерживайте в актуальном состоянии контакты, указанные в стандартном соглашении о предоставлении услуг Cloud.
Прекращение поддержки устаревших API в FCM году
Поддержка серверных 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 г.