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

Чтобы начать работу с 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. Выберите Тест .

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

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

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

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

Выйдите за рамки уведомлений

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