我正在开发一个聊天应用程序使用flutter和firebase作为后端,我想要这些功能,
-
我需要实现一个添加好友功能,并将其添加到联系人列表。
-
当用户与联系人交谈时,其聊天室将像messenger一样在列表中排序到顶部。
我该怎么做,我应该使用firestore还是数据库?链接到这个项目的GitHub仓库:https://github.com/Maxcousin123/whatzapp.git
Thanks in advance
在聊天应用程序中使用Firestore可能不是最好的方法,因为它需要大量的读写操作,而Firestore的速率更多地取决于读写而不是存储。
对于实时更新,使用FireStore
,因为它提供的数据流在使用StreamBuilder
时非常有用。
创建Firestore collection for
chats
在这个集合中,为每个用户创建一个唯一的文档,userId为documentId
创建一个名为
chatRooms
的子集合,并为每个chatRooms
文档创建一个字段lastMessageTime
,该字段将用于排序。
你的firestore结构应该是这样的,
- chat (collection)
|- userId
|- 聊天室(子集合)
|- chatRoomId
|- lastMessageTime (TimeStamp - Field)
- lastMessageData (String - Field)
- 消息(Subcollection)
- chatRoomId
- 聊天室(子集合)
- userId
要获得最新活动在顶部的聊天室,根据TimeStamp
对chatRooms
收集的数据进行排序。
Firestore.instance
.collection("chat").doc(user.id).collection("chatRooms")
.orderBy('lastMessageTime', descending: true).getDocuments()
p。S:这可能不是最好的解决方案,但你可以通过尝试来学习。