首页 > 解决方案 > 是否有任何功能可以帮助在颤振应用中添加朋友并对其进行排序?

问题描述

我正在开发一个使用颤振和火力作为后端的聊天应用程序,我想要这些功能,

  1. 我需要实现一个添加朋友功能并将其添加到联系人列表中。

  2. 每当用户与联系人交谈时,其聊天室都会像信使一样在列表中排序到顶部。

我该怎么做,我应该使用firestore还是数据库?链接到该项目的 GitHub 存储库:https ://github.com/Maxcousin123/whatzapp.git

提前致谢

标签: androidiosfirebaseflutterfirebase-authentication

解决方案


将 Firestore 用于聊天应用程序可能不是最好的方法,因为它需要大量的读取和写入,而且 Firestore 的速率更多地取决于读取和写入而不是存储。

对于实时更新,请使用它,FireStore因为它提供的数据流在使用StreamBuilder.

创建 Firestore 集合chats

在这个集合中,为每个用户维护一个唯一的文档,userId 为 documentId

创建一个名为的子集合,chatRooms并为每个chatRooms文档创建一个字段lastMessageTime,用于排序。

您的 Firestore 结构应如下所示,

  • 聊天(收藏)
    |
    • 用户名
      |
      • 聊天室(子集合)
        |
        • 聊天室 ID
          |
          • lastMessageTime(时间戳 - 字段)
          • lastMessageData(字符串 - 字段)
          • 消息(子集合)

要获取顶部有最新活动的聊天室,chatRooms请根据 对集合中的数据进行排序TimeStamp

Firestore.instance
.collection("chat").doc(user.id).collection("chatRooms")
     .orderBy('lastMessageTime', descending: true).getDocuments()


            
    

PS:这可能不是最好的解决方案,但你可以通过尝试来学习。


推荐阅读