Отправить тестовое сообщение в фоновое приложение

Чтобы начать работу с FCM, разработайте простейший вариант использования: отправка уведомления определенному пользователю, когда приложение находится в фоновом режиме на устройстве. На этой странице перечислены все шаги для достижения этой цели, от настройки до проверки — она может охватывать шаги, которые вы уже выполнили, если вы настроили клиентское приложение JavaScript для FCM.

Настройте SDK

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

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

Когда вам нужно получить текущий токен регистрации для экземпляра приложения, сначала запросите разрешения на уведомление у пользователя с помощью Notification.requestPermission() . При вызове, как показано, это возвращает токен, если разрешение предоставлено, или отклоняет обещание, если оно отклонено:

function requestPermission() {
  console.log('Requesting permission...');
  Notification.requestPermission().then((permission) => {
    if (permission === 'granted') {
      console.log('Notification permission granted.');

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

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

Web modular API

import { getMessaging, getToken } from "firebase/messaging";

// Get registration token. Initially this makes a network call, once retrieved
// subsequent calls to getToken will return from cache.
const messaging = getMessaging();
getToken(messaging, { vapidKey: '<YOUR_PUBLIC_VAPID_KEY_HERE>' }).then((currentToken) => {
  if (currentToken) {
    // Send the token to your server and update the UI if necessary
    // ...
  } else {
    // Show permission request UI
    console.log('No registration token available. Request permission to generate one.');
    // ...
  }
}).catch((err) => {
  console.log('An error occurred while retrieving token. ', err);
  // ...
});

Web namespaced API

// Get registration token. Initially this makes a network call, once retrieved
// subsequent calls to getToken will return from cache.
messaging.getToken({ vapidKey: '<YOUR_PUBLIC_VAPID_KEY_HERE>' }).then((currentToken) => {
  if (currentToken) {
    // Send the token to your server and update the UI if necessary
    // ...
  } else {
    // Show permission request UI
    console.log('No registration token available. Request permission to generate one.');
    // ...
  }
}).catch((err) => {
  console.log('An error occurred while retrieving token. ', err);
  // ...
});

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

Отправить тестовое уведомление

  1. Установите и запустите приложение на целевом устройстве. На устройствах Apple вам необходимо принять запрос на получение разрешения на получение удаленных уведомлений.

  2. Убедитесь, что приложение находится в фоновом режиме на устройстве.

  3. В консоли Firebase откройте страницу обмена сообщениями .

  4. Если это ваше первое сообщение, выберите Создать первую кампанию .

    1. Выберите «Уведомления Firebase» и выберите «Создать» .
  5. В противном случае на вкладке Кампании выберите Новая кампания , а затем Уведомления .

  6. Введите текст сообщения. Все остальные поля являются необязательными.

  7. Выберите Отправить тестовое сообщение на правой панели.

  8. В поле Добавить токен регистрации FCM введите токен регистрации, который вы получили в предыдущем разделе этого руководства.

  9. Выберите Тест .

После выбора Test целевое клиентское устройство (с приложением в фоновом режиме) должно получить уведомление.

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

Отправка сообщений в приоритетные приложения

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

Не ограничивайтесь сообщениями уведомлений

Чтобы выйти за рамки уведомлений и добавить другое, более продвинутое поведение в ваше приложение, см.: