是否有任何功能可以帮助在颤振应用中添加朋友并对其进行排序? [关闭]

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 合作过。

以上是关于是否有任何功能可以帮助在颤振应用中添加朋友并对其进行排序? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

第 20 章 设置应用程序的样式并对其进行部署

从后端连接到外部数据库

在我的颤振应用中打开位置坐标

vue项目中使用bpmn-节点篇

如何从颤振应用程序中投射屏幕?

如何在不使用任何库的情况下在颤振中使用 bloc