如何获取给定时间后发送的聊天ID的聊天消息?

时间:2020-07-30 14:38:16

标签: java android firebase-realtime-database

以下是我的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是动态创建的。

什么样的数据库结构可以帮助我实现这一目标? 自群组聊天开始以来,向新加入的用户显示所有消息真的是不合逻辑的。

1 个答案:

答案 0 :(得分:0)

您可以通过按时间安排群聊来实现,即代替消息ID 然后简单地在添加某人时,在该人的组记录中添加添加该人的时间然后,如果组消息到达的时间较长,则仅显示这些消息。