如何在移动应用后端处理读取通知

Mar*_*scó 6 architecture mobile notifications database-design ruby-on-rails

我正在完成一个移动应用程序的开发(离子,但不相关),由Ruby on Rails 5开发的后端支持,再次无关紧要,因为这更像是一个理论上的问题/问题.

这里的事情是,鉴于移动应用程序中的用户可以登录或不登录(他们有很多功能,可能有一半的人可以通过未登录的用户访问),我应该如何处理存储通知本身和读取状态?注意:通知我不是指推送通知,而是指在应用程序内部的侧边菜单中保留的"消息"(我已推送推送通知).

这里的主要问题是:我希望能够跟踪读取通知,以防止在用户重新安装应用程序时将它们标记为未读(假设仅因为您重新安装了50个未读通知).

我开始使用如下模型在后端存储通知:

  • ID
  • 用户身份
  • push_notification_id(对推送通知ID的引用,不相关)
  • 读:布尔值
  • 内容:文字

使用此模型,我会为每个需要通知的用户插入一行,并使用布尔列跟踪是否已读取.问题是,只有注册用户才能收到通知.

第二个选项是删除user_id引用和服务器端的"读取"属性,并假设我总是会通知所有人,而不是一些用户.但现在,我需要一种方法来跟踪读取的通知.我可以在移动应用程序中本地执行此操作,在本地存储中存储一些ID,但是如果重新安装,则会再次删除这些ID.

我想到的第三个选项是使用"到期"列服务器端实现第二个选项,它指示在新应用安装的情况下默认情况下通知应该停止"未读".这是我到目前为止所做的最好的,但我并不是真的相信.

我知道我在这里要求很多东西,但我只是在寻找一个以前做过的好的实施模型,因为我一直无法找到任何谷歌搜索,我相信这是一个重复的设计图案.

谢谢!

ob1*_*ob1 0

您可能会发现 unow.com 上的人员提供的这个示例很有用。

https://github.com/universitynow/message_center/tree/ce3ed6e17b4e650eae53e031ea764012ce6cbf4b/lib/concerns/models

“项目”模型应该为您提供一些关于如何手动读取另一收件人状态的想法。