是否有任何功能可以帮助在颤振应用中添加朋友并对其进行排序? [关闭]
Posted
技术标签:
【中文标题】是否有任何功能可以帮助在颤振应用中添加朋友并对其进行排序? [关闭]【英文标题】:is there any function that help in adding friends in flutter app and sort them? [closed] 【发布时间】:2021-12-11 17:56:34 【问题描述】:我正在开发一个使用 Flutter 和 Firebase 作为后端的聊天应用,我想要这些功能,
我需要实现一个添加好友功能,并将其添加到联系人列表中。
每当用户与联系人交谈时,其聊天室都会像信使一样在列表中排序到顶部。
我该怎么做,我应该使用 firestore 还是 database ? 本项目的GitHub repo链接:https://github.com/Maxcousin123/whatzapp.git
提前致谢
【问题讨论】:
这个问题似乎之前没有研究过。在您深入了解拥有一个有效的联系人/朋友列表之前,您为什么不事先研究实际的聊天协议? 这看起来更像是“你能为我做这项工作吗?”题。开始做你自己的研究,如果这没有帮助并且你找不到方法,我们很乐意提供帮助 我正在研究这个功能 2 周,并尝试了一切,然后才在这里发布,看不到通常粗鲁的答案 :) 【参考方案1】:将 Firestore 用于聊天应用程序可能不是最佳方法,因为它需要大量读取和写入,而且 Firestore 速率更多地取决于读取和写入而不是存储。
对于实时更新,请使用FireStore
,因为它提供的数据流在使用StreamBuilder
时非常有用。
为
chats
创建 Firestore 集合
在这个集合中,为每个用户维护一个唯一的文档,userId为documentId
创建一个名为
chatRooms
的子集合,并为每个chatRooms
文档创建一个字段lastMessageTime
,用于排序。
您的 Firestore 结构应如下所示,
聊天(收藏) | 用户ID | chatRooms(子集合) | 聊天室 ID | lastMessageTime(时间戳 - 字段) lastMessageData(字符串 - 字段) 消息(子集合)要获取顶部有最新活动的聊天室,请根据TimeStamp
对来自chatRooms
集合的数据进行排序。
Firestore.instance
.collection("chat").doc(user.id).collection("chatRooms")
.orderBy('lastMessageTime', descending: true).getDocuments()
P.S:这可能不是最好的解决方案,但你可以通过尝试来学习。
【讨论】:
Firestore 不是聊天应用程序的最佳解决方案,因为您有很多读写操作,对于这个用例,实时数据库更好@ASAD HAMEED 是的,这很好。 @AnanSaadi 您能否相应地编辑答案。我最近没有和Realtime Database
合作过。以上是关于是否有任何功能可以帮助在颤振应用中添加朋友并对其进行排序? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章