以下是我的Firebase实时数据库中messages
节点的结构:
"messages" : {
"-MDQs5CjIFbIPV24XSHX" : { // Group chat Id
"-MDQt6gYsxrwislwSItN" : { // Message Id
"_id" : "-MDQt6gYsxrwislwSItN",
"chatId" : "-MDQs5CjIFbIPV24XSHX",
"creationDate" : 1596048309540,
"messageType" : "type_text",
"senderId" : "cOEwux6gjpPoZSQ9h3PHcFz5X8g1",
"senderName" : "User 1",
"text" : "Hi"
}
}
}
在GroupChatFragment
中,我想检索与群聊的ID有关的消息,但仅检索在用户加入群聊后发送的消息。
我知道当前数据库结构是不可能的,因为在那种情况下,我将需要为message / chatId / creationDate创建索引,并且chatId是动态创建的。
什么样的数据库结构可以帮助我实现这一目标? 自群组聊天开始以来,向新加入的用户显示所有消息真的是不合逻辑的。
答案 0 :(得分:0)
您可以通过按时间安排群聊来实现,即代替消息ID 然后简单地在添加某人时,在该人的组记录中添加添加该人的时间。然后,如果组消息到达的时间较长,则仅显示这些消息。