未读消息总数

时间:2021-02-04 11:48:34

标签: flutter google-cloud-firestore google-cloud-functions chat

在我的 flutter 和 firebase 应用程序中,我使用云功能发送任何新消息的通知。我面临的问题是如何在聊天室列表磁贴中显示未读消息总数,如这个著名的聊天应用程序中的红色圆圈所示。 enter image description here

除了每个磁贴右侧的未读消息计数器外,我的聊天室页面看起来几乎像这张图片。我必须使用什么逻辑? 请给我任何建议,以实现在每个聊天室图块右侧显示未读消息的数量。 这是我在 firestore 中的聊天室收藏。 enter image description hereenter image description here

1 个答案:

答案 0 :(得分:1)

您可以简单地在文档中再添加 3 个字段:-

  1. 1stpersonMessageCount
  2. 2ndPersonMessageCount
  3. 消息计数

所以现在您需要做的是,在您的聊天屏幕中,您只需要在每次发送消息的人发送消息时增加他的消息计数:-

chatRoomReference.updateData({
                      "messageCount":FieldValue.increment(1),
                      "${currentUser}messageCount":FieldValue.increment(1),
                    });

为了看到消息,你可以简单地更新接收者的消息计数

    chatRoomReference.updateData({
                      "${currentUser}messageCount":snapshot.documents.length,
                    });

在您想要查看新消息计数的页面上,您只需减去 messageCount 和 curentUserMessageCount 的值。

在两个代码部分中,您都可以看到 currentUser 在那里,但不要在发件人发送消息时感到困惑,然后 currentUser 的值将是发件人的姓名或他的 id,而当有人阅读时则是他的 id 或姓名。前约翰正在发送,那么当前用户将是约翰,当 mohan 正在阅读消息时,它将是 mohan。因此,您将有 3 个字段,即 JohnMessageCount、MohanMessageCount 和总消息数,即 messageCount。

相关问题