通知系统,每次重新加载时都会在回调时触发 Firebase
Notification system with Firebase triggers on callback on every reload
所以我正在尝试制作一个类似于Facebook系统的通知系统。我有一个在后台运行的 cron 作业,当它觉得需要向用户发送通知时,它会使用 PHP(REST) SDK 向 Firebase 发送推送。在仪表板上,我有一个"on"回调,该回调获取用户的所有传入通知,并为每个传入的新通知显示通知
var push_ref = firebase_ref.on('child_added', function(push) {
new PNotify({
title: 'Notification',
text: push.val().message,
...
});
});
但是,当我重新加载页面时,所有以前发送的通知都会同时弹出,并用通知框填充屏幕。我不想删除发送的推送通知,因为稍后我将创建一个系统来获取它们并将它们放在下拉框中(类似于 Facebook 上的通知下拉列表)。
我的问题是;
如何保留所有已发送的通知,同时禁用 Firebase 在客户端再次上线时返回所有通知?
更新:再次查看他们的文档,发现他们检索的数据类型非常不同。它在"child_Added"下说,它"为每个现有子级触发一次,然后在每次将新子级添加到指定路径时再次触发"。这就是为什么一旦我重新加载包含所有现有子级的页面,就会触发它的原因。
你能看到任何可能适合我的其他类型的类型吗,因为我还没有找到。
您可以让客户端在收到时更新每条消息以确认已显示(设置acknowledged = true
或其他)。 然后使用已确认字段筛选 UI 处理,以仅突出显示未确认的消息。
这假设消息是特定于用户的,或者您的数据结构将需要消息/用户映射来保存确认。
如果用户正在读取公共消息流,则可以保存特定于用户的lastReadDate
或过滤掉旧消息的内容。
相关文章:
- AngularJS:我可以跳过函数参数回调吗
- 要求未定义JS回调参数
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 自引用回调
- 测试Angular Service解决错误回调中的promise
- 如何将一个JavaScript函数回调为多个函数
- JavaScript回调函数
- 用于回调的javascript参数
- 将json回调数据转换为日期
- 承诺在非节点式回调上使用Bluebird
- 回调在 Angular2/Firebase 中生成“TypeError: this is undefined”
- 直接在 on() 回调 Firebase 中使用 off()
- 通知系统,每次重新加载时都会在回调时触发 Firebase
- 使用 Polymer 的 Firebase 登录回调
- Firebase 回调 - 底层触发因素是什么
- Firebase-回调返回[object object]
- Firebase:在成功回调中使用新创建的密钥
- Firebase和Angular中的回调
- 如何在Firebase匿名登录中注册退出事件的回调
- Firebase Google OAuth - Auth uid不同于先前已删除的电子邮件的回调返回的uid