繁体   English   中英

从Firebase数据库检索数据时出现延迟

[英]Delay While Retrieving Data From Firebase Database

这是一个聊天应用程序。 我正在检索要显示在聊天室recyclerview上的消息。 为此,我正在使用FirebaseRecyclerAdapter。 我正在检索最新的500条消息。 那个聊天室有超过2万条消息。当我加载该活动时,加载全部500条消息需要6秒钟。

我跟踪了时间。

延迟介于setAdapter和RecyclerAdapter类之间。

我在Firebase数据库中的邮件结构

{
  "-KlQc42ici0_PRCBX7-V" : {
    "message" : "message 1",
    "timestamp" : 1496185853436,
    "type" : "action",
    "username" : "berkleef2",
  },
  "-KlQmhcwK96j30FNoSs-" : {
    "message" : "message 2",
    "timestamp" : 1496188640000,
    "type" : "action",
    "username" : "atrickrodney16yahoocomat",
    "zread" : true
  },
  "-KlQmjSoucJD7uaHriOh" : {
    "message" : "message 3",
    "timestamp" : 1496188647083,
    "type" : "text",
    "username" : "atrickrodney16yahoocomat",
    "zread" : true
  }
}

setAdapter之后开始延迟

 mNewAdapter = new NewChatRecyclerAdapter(
                    ChatMessageItem.class,
                    R.layout.message_item,
                    RecyclerView.ViewHolder.class, ref.limitToLast(500), Fusername, booIsPrivateChat, chatd, strOpponent);
            messageList.setAdapter(mNewAdapter);

我认为适配器类没有问题。 因此,如果问题是加载500条消息。 那么在这种情况下我该怎么做才能加载聊天消息...

使用启用了Firebase脱机功能集的持久性,以便您可以存储消息

您可以一个接一个地以20或50条消息的块的形式获取它们。

您可以在数据库参考上使用keepsynced数据库提供的keepsynced函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM