Flutter Firebase 在“所有聊天”屏幕上显示我正在聊天的人员的姓名

问题描述 投票:0回答:1

我正在使用 flutter 和 firestore 编写一个聊天应用程序,聊天功能现在工作正常。但是我遇到了一个问题,如果用户 x 登录聊天应用程序,所有聊天屏幕必须显示用户 x 涉及的所有聊天在类似 WhatsApp 中,对话具有用户正在与之聊天的其他人的姓名,这样在其他人的聊天应用程序中,他们会看到用户 x 的姓名作为对话的标题。所有聊天屏幕必须有用户 x 的对话列表参与的每个对话的标题都是他们正在聊天的其他用户的名字,例如 usery、userb、userg、jonedoe、janedoe 等..我怎样才能完成这个任务?

我只能显示对话并显示每个对话的最后一条消息

flutter dart google-cloud-firestore chat
1个回答
0
投票

看来你的设计流程有问题。你可以在编码之前先画它。

首先你有用户节点,然后你可以拥有他们的ID,之后当他们开始聊天时,你可以将他们添加到另一个节点(可以是聊天组节点),然后再创建一个节点作为他们的对话列表。

  1. 要拥有最近的聊天用户:您需要在聊天组节点中查找当前用户 ID 并按日期排序。
  2. 在聊天组节点中,您同时拥有当前用户 id 和 x 用户 id,因此您可以从聊天组节点获取 id,以从对话节点列表中获取列表对话。

如果您有大量用户数据,您可以使用 Firebase Index 来更快地查询用户。

这只是我的想法,你可以定义更简单的流程。

© www.soinside.com 2019 - 2024. All rights reserved.