当您的Web应用程序处于后台时,Firestore实时侦听器

时间:2018-07-31 19:29:32

标签: javascript firebase google-cloud-firestore service-worker progressive-web-apps

以下代码将侦听器添加到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);
              });
        });
});

1 个答案:

答案 0 :(得分:0)

服务工作者无法维持与服务器的持久连接。

您可以运行Cloud Function trigger来侦听更改,并且在需要通知用户时,可以发送push notification