Используйте Firebase Cloud Messaging (FCM) с browser.gcm

С помощью browser.gcm вы можете отправлять и получать сообщения конечным пользователям. Поскольку он построен на основе Firebase Cloud Messaging (FCM), он зависит от внешнего сервиса, который необходимо настроить. В этом руководстве описаны все необходимые шаги для его работы в вашем расширении.

Хотя browser.gcm по - прежнему поддерживается, он был создан более десяти лет назад, до стандарта Push . В целом, всегда лучше использовать веб-стандарт, а не API, специфичный для расширений. Если у вас нет особой необходимости использовать browser.gcm , мы рекомендуем использовать Push .

Предварительные требования

Для использования browser.gcm вам потребуется создать учетную запись Firebase .

Домашняя страница Firebase.com.
Домашняя страница Firebase.com

После создания учетной записи откройте консоль Firebase и выберите существующий проект для использования или создайте новый для своего расширения.

Скриншот списка проектов в консоли Firebase.
Список проектов в консоли Firebase

Перейдите на страницу настроек облачного обмена сообщениями.

Скриншот страницы настроек Firebase Cloud Messaging.
Страница настроек Firebase Cloud Messaging

Если у вас уже есть учетная запись облачного обмена сообщениями в этом проекте, вам следует скопировать указанный в ней числовой идентификатор отправителя.

Если у вас не включена функция обмена сообщениями в облаке, вам потребуется включить API Firebase Cloud Messaging для проекта в Google Cloud. На следующем изображении вы можете увидеть ссылку, ведущую непосредственно на эту страницу в настройках Firebase.

Скриншот расположения ссылки для включения Firebase Messaging API в Google Cloud.
Открытие ссылки на настройки Google Cloud в Firebase.

После включения вернитесь на страницу настроек Cloud Messaging и скопируйте идентификатор отправителя (Sender ID).

Configure browser.gcm

Теперь, когда у вас есть идентификатор отправителя (Sender Id) из Firebase, вы можете настроить расширение для прослушивания сообщений. Для начала убедитесь, что вы добавили разрешение gcm в manifest.json вашего расширения.

  {
    "manifest_version": 3,
    ...
    "permissions": ["gcm"]

Теперь у вас есть доступ к API browser.gcm . Вы можете зарегистрироваться для прослушивания push-уведомлений, вызвав метод browser.gcm.register

Внимательно прислушивайтесь к сообщениям

После регистрации вашего идентификатора отправителя расширением необходимо добавить код для обработки входящих сообщений.

Firebase без Firebase

Хотя browser.gcm всегда использует Firebase, Firebase можно настроить как прокси для внешних поставщиков push-уведомлений. Обычно поставщики явно указывают поддержку расширений Chrome, однако любой поставщик, поддерживающий устаревшие push-уведомления Firebase, должен работать. Если ваш поставщик указывает поддержку устаревших push-уведомлений Firebase, попробуйте. Если возникнут проблемы, служба поддержки поставщика сможет разъяснить любые существующие ограничения.

О каналах и темах

browser.gcm использует устаревшие API Firebase Messaging. Это важно, потому что устаревший API не поддерживает каналы сообщений . Каждое отправленное сообщение будет доставлено каждому клиенту. Если расширение пользователя заинтересовано только в подмножестве сообщений, вам потребуется самостоятельно выполнить фильтрацию.

Хотя Firebase изначально предоставляется с бесплатной учетной записью, с вас будет взиматься плата после превышения определенного порога использования. Если вы планируете отправлять сообщения определенным группам, то фильтрация на стороне клиента может обойтись дороже, чем это оправдано. Эту проблему можно решить, создав несколько проектов для дублирования отдельных каналов (один проект и один идентификатор отправителя для каждого канала). Любое расширение может зарегистрировать несколько идентификаторов отправителя, до 100.

В качестве альтернативы, если вам необходима поддержка каналов или вы хотите использовать push-уведомления без Firebase, вы можете воспользоваться Push API .