我正在尝试使用Firebase创建一个包含用户和群聊之间的个人聊天的聊天应用程序。我想为每条消息做一个读状态,现在的问题是,考虑一个群聊有一个节点
> groupId---->
> --->messageId
> -->userId
> -->messageType
> -->text
我的暗示是,如果用户向将要添加到具有消息ID节点的组ID的组发送消息并且所有人都在收听该组,那么现在我将获得该子消息所有人都阅读了这条消我可以通过保持本地状态来处理它,但是如果用户从另一个设备登录我该如何处理呢?
答案 0 :(得分:5)
如果您想跟踪用户是否阅读了每条消息,您需要将其存储在数据库中:
read_messages_per_user
<userId>
<messageId>: true
随着时间的推移,这可能会成为很多数据。因此,更有效(但不太具体)的变体是存储用户阅读的最后一条消息。
last_read_messageId_per_user
<userId>: <messageId>