[英]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.