Google is committed to advancing racial equity for Black communities. See how.
Эта страница была переведа с помощью Cloud Translation API.
Switch to English

Настройка клиентского приложения JavaScript Firebase Cloud Messaging

FCM JavaScript API позволяет получать уведомления в веб-приложениях, работающих в браузерах, поддерживающих Push API . Сюда входят версии браузеров, перечисленные в этой матрице поддержки, и расширения Chrome через Push API.

FCM SDK поддерживается только на страницах, обслуживаемых по HTTPS. Это связано с использованием сервис-воркеров, которые доступны только на сайтах HTTPS. Если вам нужен провайдер, рекомендуется использовать Firebase Hosting для бесплатного HTTPS-хостинга в вашем собственном домене.

Чтобы начать работу с FCM JavaScript API, вам необходимо добавить Firebase в свое веб-приложение и добавить логику для доступа к токенам регистрации.

Добавьте Firebase в свой проект JavaScript

Если вы еще этого не сделали, добавьте Firebase в свой проект JavaScript .

Если вы в настоящее время используете FCM для Интернета и хотите обновить до SDK 6.7.0 или более поздней версии, вы должны включить FCM Registration API для своего проекта в Google Cloud Console. При включении API убедитесь, что вы вошли в Cloud Console с той же учетной записью Google, которую используете для Firebase, и убедитесь, что выбрали правильный проект. В новых проектах, добавляющих FCM SDK, этот API включен по умолчанию.

Настроить веб-учетные данные с помощью FCM

Веб-интерфейс FCM использует веб-учетные данные, называемые «добровольной идентификацией сервера приложений» или «ключами VAPID», для авторизации запросов на отправку в поддерживаемые веб-службы push. Чтобы подписать приложение на push-уведомления, вам необходимо связать пару ключей с вашим проектом Firebase. Вы можете либо создать новую пару ключей, либо импортировать существующую пару ключей через Firebase Console.

Создайте новую пару ключей

  1. Откройте вкладку Cloud Messaging на панели настроек консоли Firebase и прокрутите до раздела веб-конфигурации .
  2. На вкладке сертификатов Web Push нажмите « Создать пару ключей» . Консоль отображает уведомление о том, что пара ключей была сгенерирована, и отображает строку открытого ключа и дату добавления.

Импортировать существующую пару ключей

Если у вас есть существующая пара ключей, которую вы уже используете в своем веб-приложении, вы можете импортировать ее в FCM, чтобы получить доступ к существующим экземплярам веб-приложения через API FCM. Чтобы импортировать ключи, у вас должен быть доступ на уровне владельца к проекту Firebase. Импортируйте существующий открытый и закрытый ключ в форме, защищенной URL-адресом base64:

  1. Откройте вкладку Cloud Messaging на панели настроек консоли Firebase и прокрутите до раздела веб-конфигурации .
  2. На вкладке сертификатов Web Push найдите и выделите текст ссылки «импортировать существующую пару ключей».
  3. В диалоговом окне « Импорт пары ключей » укажите свой открытый и закрытый ключи в соответствующих полях и нажмите « Импорт» . Консоль отображает строку открытого ключа и дату добавления.

Инструкции по добавлению ключа в приложение см. В разделе Настройка веб-учетных данных в приложении . Дополнительные сведения о формате ключей и способах их создания см. В разделе Ключи сервера приложений .

Получить объект обмена сообщениями

// Retrieve Firebase Messaging object.
const messaging = firebase.messaging();

Настройте веб-учетные данные в своем приложении

Метод usePublicVapidKey позволяет FCM использовать учетные данные ключа VAPID при отправке запросов сообщений в различные службы push. Используя ключ, который вы сгенерировали или импортировали в соответствии с инструкциями в разделе Настройка веб-учетных данных с помощью FCM , добавьте его в свой код после получения объекта обмена сообщениями:

// Add the public key generated from the console here.
messaging.usePublicVapidKey("BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu");

Доступ к токену регистрации

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

Для службы обмена сообщениями требуется файл firebase-messaging-sw.js . Если у вас еще нет файла firebase-messaging-sw.js , создайте пустой файл с этим именем и поместите его в корень своего домена перед получением токена. Вы можете добавить значимое содержимое в файл позже в процессе настройки клиента.

Чтобы получить текущий токен:

// Get Instance ID token. Initially this makes a network call, once retrieved
// subsequent calls to getToken will return from cache.
messaging.getToken().then((currentToken) => {
  if (currentToken) {
    sendTokenToServer(currentToken);
    updateUIForPushEnabled(currentToken);
  } else {
    // Show permission request.
    console.log('No Instance ID token available. Request permission to generate one.');
    // Show permission UI.
    updateUIForPushPermissionRequired();
    setTokenSentToServer(false);
  }
}).catch((err) => {
  console.log('An error occurred while retrieving token. ', err);
  showToken('Error retrieving Instance ID token. ', err);
  setTokenSentToServer(false);
});

После получения токена отправьте его на сервер приложений и сохраните, используя предпочитаемый вами метод.

Следующие шаги

После того, как вы выполнили шаги настройки, вот несколько вариантов для продвижения вперед с FCM для Интернета (JavaScript):