【发布时间】:2021-09-26 19:50:35
【问题描述】:
我正在根据此链接上的指南构建一个聊天应用程序:https://medium.com/flutter-community/a-chat-application-flutter-firebase-1d2e87ace78f
不同之处在于,在我的聊天应用中,两个用户之间的对话涉及特定主题。例如 user1 和 user2 之间的对话将是关于 subject1。
有一个用户发布的主题列表,当用户点击主题时,他/她可以与主题所有者聊天以进行澄清。
在指南中,对话是这样存储的: Firestore.instance .collection('消息') .document(chatId) .collection(chatId)。 .doc(时间戳)...
但由于我的每条消息都是关于特定主题的,所以我正在使用 Firestore.instance .collection('消息') .doc(主题 ID) .collection("subjectId") .document(chatId) .collection(chatId)。 .doc(时间戳)...
现在我的问题:当用户单击主题并开始与所有者聊天时,检索消息并在聊天室(聊天页面)中显示它们不是问题,因为我知道特定的 subjectId,我可以检索与它的消息。 但是我有一个消息页面,用户可以在其中看到他/她参与的所有聊天。 像这样:
但由于我没有特定的 subjectId,我无法编写查询来检索 chatId 包含我的 userId 的所有对话。
我将寻求更好的数据库架构或编写查询的方法的帮助。请 谢谢
【问题讨论】:
标签: flutter google-cloud-firestore