Flutter 如何创建具有Flatter和firestore的聊天室

Flutter 如何创建具有Flatter和firestore的聊天室,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,我已经创建了一个与Flatter的聊天,我需要在我的应用程序中使用,其中1组用户将与另一种用户组聊天。 目前,我的聊天是以这种方式开发的,我在firebase中创建了记录,因此: CollectionReference addMessage = FirebaseFirestore.instance.collection('Messages'); Future<void> createMessageRecord() { return addMessage .

我已经创建了一个与Flatter的聊天,我需要在我的应用程序中使用,其中1组用户将与另一种用户组聊天。 目前,我的聊天是以这种方式开发的,我在firebase中创建了记录,因此:

CollectionReference addMessage = FirebaseFirestore.instance.collection('Messages');
  Future<void> createMessageRecord() {
    return addMessage
        .add(
          { 'id': firebaseUser.uid,
            'text': textMessage,
            'timeStamp': DateTime.now().millisecondsSinceEpoch.toString(),
          },
        )
我展示它们:

ListView.builder(
                        reverse: true,
                        padding: EdgeInsets.only(top: 15.0),
                        itemCount: snapshot.data.docs.length,
                        itemBuilder: (BuildContext context, int index) {
                          final message = snapshot.data.docs[index];
                          final bool isMe = message['id'] == firebaseUser.uid;
                          return _buildMessage(message, isMe);
聊天效果相当不错,但所有用户当然都会有相同的聊天。 我想做的是限制聊天仅为2个用户显示。 第一个开始聊天,第二个开始聊天。 目前,我已经在firestore中创建了一个名为“Messages”的集合,并在其中创建了3个文档
id
text
时间戳```
我不知道如何限制仅为这两个用户显示数据,而不是为所有消息创建一个文档。每个会话创建一个文档。这样,您将只检索相应的消息


正如@Uni在评论中提到的,你应该使用实时数据库,你也可以在网上看几个例子,看看如何做到这一点

你肯定不想使用firestore作为聊天应用。尝试使用firebase实时数据库。它是针对那个用例的,从长远来看更便宜。看一看如何构造你的聊天应用程序。你能给我举个例子吗?请“不要为所有消息创建一个文档,而是为每个会话创建一个文档,这样你只会检索相应的消息。”你能解释一下如何为每个集合创建多个文档吗?在上,这是一个关于如何在聊天应用程序示例中构造数据的清晰示例。同时请记住,StakCflow的目的是解决问题,请避免发表类似“你能给我举个例子吗”的评论
ListView.builder(
                        reverse: true,
                        padding: EdgeInsets.only(top: 15.0),
                        itemCount: snapshot.data.docs.length,
                        itemBuilder: (BuildContext context, int index) {
                          final message = snapshot.data.docs[index];
                          final bool isMe = message['id'] == firebaseUser.uid;
                          return _buildMessage(message, isMe);