gpt4 book ai didi

javascript - 带有 Firebase 的通知系统在每次重新加载时触发回调

转载 作者:行者123 更新时间:2023-11-30 12:29:26 25 4
gpt4 key购买 nike

所以我想做一个类似于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”下表示 "is triggered once for each existing child and then again every time a new child is added to the specified path" .这就是为什么在我重新加载包含所有现有子项的页面后触发它的原因。

你能看到任何其他可能对我有用的类型吗,因为我还没有找到。

最佳答案

您可以让客户端更新收到的每条消息以确认它已显示(设置 acknowledged = true 或其他)。然后使用已确认的字段过滤 UI 处理以仅突出显示未确认的消息。

这假定消息是特定于用户的,或者您的数据结构将需要消息/用户映射来保存确认。

如果用户正在阅读公共(public)消息流,您可以保存用户特定的 lastReadDate 或过滤掉旧消息的内容。

关于javascript - 带有 Firebase 的通知系统在每次重新加载时触发回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28208352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com