以下代码将侦听器添加到firestore集合中,并在Web应用程序位于前台时发送推送通知。是否有可能通过服务工作者在后台执行相同的操作? 我尝试将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);
});
});
});
答案 0 :(得分:0)
服务工作者无法维持与服务器的持久连接。
您可以运行Cloud Function trigger来侦听更改,并且在需要通知用户时,可以发送push notification。