您是否可以验证我使用Firebase管理用户通知系统的方法?
基本上我想拥有特定于用户的频道以及保存通知的更多通用频道。如果用户以前没有查看过,这些通知将显示在Intranet上。
作为服务器端操作的想法将使用REST API为特定用户或向每个人广播更新Firebase端点。特定的用户消息我可以很容易地标记为已读,因此不再显示它们,这是我正在努力的一般广播。
我可以向普通广播添加一个标志(用户ID)以指示其读取,但我担心性能,因为客户端必须检查历史广播消息是否存在此标志。我可以添加一个用户ID来创建一个更快的新端点 例如/ notification / general / - 包含消息,这会触发客户端,然后客户端会检查/ users / USERID / MessageID是否存在,如果它不显示消息并创建此终点。
我有什么遗漏或是最好的方法吗?
答案 0 :(得分:1)
由于已经存在单独的用户消息,为什么不直接向每个人发送广播(想想电子邮件),而不是试图存储单个副本并找出谁阅读它。
要减少批量,您可以单独存储邮件内容,只需将ID存储在用户的队列中。然后,当他们被查看时,您可以为每个用户标记它们而不会有任何额外的复杂性。
每天接收100条消息(包括广播)的100k用户使用标准的firebase ID(大约20个字符),每年发出210,000,000个字符(即数据库没有任何内容,可能仍然远远低于实际批量存储消息正文),假设它们永不过期并被删除。