在我的 flutter 和 firebase 应用程序中,我使用云功能发送任何新消息的通知。我面临的问题是如何在聊天室列表磁贴中显示未读消息总数,如这个著名的聊天应用程序中的红色圆圈所示。
除了每个磁贴右侧的未读消息计数器外,我的聊天室页面看起来几乎像这张图片。我必须使用什么逻辑? 请给我任何建议,以实现在每个聊天室图块右侧显示未读消息的数量。 这是我在 firestore 中的聊天室收藏。
答案 0 :(得分:1)
您可以简单地在文档中再添加 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。