在Firebase的多个设备和浏览器窗口中读取/未读取消息

在Firebase的多个设备和浏览器窗口中读取/未读取消息,firebase,angularfire,Firebase,Angularfire,我正在使用Firebase/AngularFire构建聊天模块。 我必须跟踪用户在多个设备上读取的消息,并将其显示为用户未读消息的数量。 用户可以有许多对话,每个对话仅在两个用户之间进行。 同一对话可以通过多个选项卡或多个设备打开。i、 e.用户可以在多个设备/选项卡的同一对话页面上进行连接 当用户进入对话页面时,在userstatus:conversations:conversationId:userId:count:5(NumberOfOpenConversationPlaces)中增加已连

我正在使用Firebase/AngularFire构建聊天模块。 我必须跟踪用户在多个设备上读取的消息,并将其显示为用户未读消息的数量。 用户可以有许多对话,每个对话仅在两个用户之间进行。 同一对话可以通过多个选项卡或多个设备打开。i、 e.用户可以在多个设备/选项卡的同一对话页面上进行连接

当用户进入对话页面时,在userstatus:conversations:conversationId:userId:count:5(NumberOfOpenConversationPlaces)中增加已连接用户的计数器,该计数器显示多个设备上为同一对话打开的windows用户数。 当用户离开/关闭对话页面时,如果计数=0,则减少计数并删除引用。此时,我们知道用户没有任何打开的对话页面。 这表示用户是否连接/断开了与任何设备或窗口上的对话的连接。 如果用户有打开对话的条目,则将发送给用户的所有消息标记为已读/已看到 一旦用户连接到对话,请将其中的所有消息标记为可见

这是正确的吗?我是否应该根据用户是否在一个甚至可能不被使用的窗口中打开了一个对话来更新所有消息,无论消息是否被看到?或者,我是否应该不根据聊天室打开的窗口进行更新,而只在用户在该窗口处于活动状态时更改状态?如何在多个窗口/设备上管理它?在这种情况下有没有使用.info/connected的方法

{
  "conversations" : {
    "conversationID1" : {
      "dateCreated" : "",
      "messages" : {
        "messageID1" : {
          "sentDateTime" : "",
          "content" : "",
          "sentTo" : "",
          "sentBy" : "",
          "seen" : false
        },
        "messageID2" : {
          "sentDateTime" : "",
          "content" : "",
          "sentTo" : "",
          "sentBy" : "",
          "seen" : false
        }
      }
    }
  },
  "userstatus" : {
    "conversations" : {
      "conversationID1" : {
        "userID1" : {
          "count" : 5
        },
        "userID2" : {
          "count" : 3
        }
      }
    }
  }
}

嘿,你知道怎么读邮件了吗?如果你还没有开始,让我们一起研究如何去做。如果您有,请您帮助我如何使用firebase实现类似的功能?@bhavicp。你们找到了解决这个问题的方法吗?嘿,你们知道怎么读邮件了吗?如果你还没有开始,让我们一起研究如何去做。如果您有,请您帮助我如何使用firebase实现类似的功能?@bhavicp。你们找到解决办法了吗??