Чтобы начать работу с 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); // ... });
После того, как вы получили токен, отправьте его на сервер приложений и сохраните, используя предпочитаемый вами метод.
Отправить тестовое уведомление
Установите и запустите приложение на целевом устройстве. На устройствах Apple вам необходимо принять запрос на получение разрешения на получение удаленных уведомлений.
Убедитесь, что приложение находится в фоновом режиме на устройстве.
В консоли Firebase откройте страницу обмена сообщениями .
Если это ваше первое сообщение, выберите Создать первую кампанию .
- Выберите «Уведомления Firebase» и выберите «Создать» .
В противном случае на вкладке Кампании выберите Новая кампания , а затем Уведомления .
Введите текст сообщения. Все остальные поля являются необязательными.
Выберите Отправить тестовое сообщение на правой панели.
В поле Добавить токен регистрации FCM введите токен регистрации, который вы получили в предыдущем разделе этого руководства.
Выберите Тест .
После выбора Test целевое клиентское устройство (с приложением в фоновом режиме) должно получить уведомление.
Следующие шаги
Отправка сообщений в приоритетные приложения
После того, как вы успешно отправили уведомления, когда ваше приложение находится в фоновом режиме, см. раздел Получение сообщений в клиенте JavaScript , чтобы начать отправку в приоритетные приложения.
Не ограничивайтесь сообщениями уведомлений
Чтобы выйти за рамки уведомлений и добавить другое, более продвинутое поведение в ваше приложение, см.: