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