【问题标题】:How to create chatRoom with flutter and firestore如何使用颤振和 Firestore 创建聊天室
【发布时间】:2021-04-07 21:49:57
【问题描述】:

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

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

我找回它们:

StreamBuilder(
        stream: FirebaseFirestore.instance.collection('Messages').orderBy('timeStamp', descending: true).snapshots(),
        builder: (context, snapshot) {
          if (!snapshot.hasData)
            return Center(child: CircularProgressIndicator());

我展示它们:

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个文档idtexttimeStamp``` 我不知道如何限制仅针对这 2 个用户的显示数据

【问题讨论】:

  • 您绝对不想将 Firestore 用于聊天应用程序。尝试使用 firebase 实时数据库。它适用于该用例,从长远来看更便宜。查看stackoverflow.com/questions/52410826/…,了解如何构建您的聊天应用程序。

标签: flutter google-cloud-firestore


【解决方案1】:

不用为所有消息创建一个文档,而是为每个对话创建一个文档,这样您将只检索相应的消息。

正如@Uni 的评论中提到的,您应该使用实时数据库,您也可以查看网络上的几个示例,了解如何实现这一点。 for example

【讨论】:

  • 您能给我举个例子吗?“不要为所有消息创建一个文档,而是为每个对话创建一个文档,这样您只会检索相应的消息。”
  • 你能解释一下如何为每个集合创建多个文档吗?
  • firebase docs 上,这是一个关于如何在聊天应用示例中构建数据的清晰示例。
  • 另外请记住,stakcoverflow 的目的是解决问题,请避免制作类似“Could you make me an example”之类的 cmets
猜你喜欢
  • 2021-11-04
  • 1970-01-01
  • 2013-03-05
  • 2021-12-16
  • 1970-01-01
  • 2012-12-17
  • 1970-01-01
  • 2020-08-20
  • 2013-04-05
相关资源
最近更新 更多