приведенный ниже код добавляет слушателя в коллекцию firestore и отправляет push-уведомление, когда веб-приложение находится на переднем плане. Можно ли сделать то же самое в фоновом режиме, возможно, через сервисного работника? Я попытался импортировать модуль firebase для рабочего, но мне это не удалось
db.collection("favorites").onSnapshot(function(snapshot) {
var response =snapshot.docChanges();
response.forEach(function(change) {
if (change.type === "added") {
var bodyPaint="New favorites: ";
}
if (change.type === "modified") {
var bodyPaint="Modified favorites: ";
}
if (change.type === "removed") {
var bodyPaint="Removed favorites: ";
}
navigator.serviceWorker.ready.then(function(registration) {
const title = 'LA BUENOS AIRES';
const options = {
body: bodyPaint,
icon: 'images/icon.png',
badge: 'images/badge.png'
};
registration.showNotification(title, options);
});
});
});
Сервисный рабочий не может поддерживать постоянное соединение с таким сервером.
Вы можете запустить триггер Cloud Function, который прослушивает изменения, и когда что-то требует уведомления пользователя, вы можете отправить push-уведомление.