下面的代码将侦听器添加到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/

10-13 00:37