我有一个使用Firestore实时数据库作为后端的Flutter聊天应用程序:
注意:我的应用程序不仅仅是一个聊天应用程序,这只是主应用程序的一部分。想象一下类似于Airbnb的聊天功能,因此聊天消息的数量或频率可能不像Facebook Messenger那样大。
messages (collection)
message_1 (document)
chat (collection)
chat_1 (document)
chat_2 (document)
users (array, document field)
user_id_1 (String)
user_id_2 (String)
user_info (map to store user info, like name, avatar etc)
message_2 (document)
chat (collection)
chat_1 (document)
chat_2 (document)
users (array, document field)
user_id_1 (String)
user_id_2 (String)
user_info (map to store user info, like name, avatar etc)
我想创建一个主页,显示用户参与的所有聊天记录,按最近时间排序,就像任何普通的聊天应用程序一样:
我知道如何显示用户参与的聊天记录。问题是,我不知道如何处理排序。有一种简单的方法:每次发送新消息时,使用云函数更新消息文档中称为lastSent
的字段,然后在查询中使用orderBy('lastSent', descending: true)
。问题是,每次发送消息时,您需要进行两次写操作才能更新此字段,而不是一次。是否有更好的方法来处理这个问题?注意:我的应用程序不仅仅是一个聊天应用程序,这只是主应用程序的一部分。想象一下类似于Airbnb的聊天功能,因此聊天消息的数量或频率可能不像Facebook Messenger那样大。