下面的代码将侦听器添加到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);
});
});
});
最佳答案
服务工作者无法像这样维护与服务器的持久连接。
您可以运行Cloud Function trigger来监听更改,并且当需要向用户发送通知时,可以发送push notification。
关于javascript - 当您的Web应用程序处于后台时,Firestore实时监听器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51620738/