我正在我的应用中实现聊天功能。我已经使用了2个活动(ChatRoom活动)和(ChatActivity)。
聊天室活动
这将是显示聊天室的活动。
聊天活动
这将是显示聊天消息的活动,这意味着点击聊天室时启动的活动。
我的问题
我使用子监听器来获取消息,并使用回收器视图来显示它们。这很好。
但问题是,当(ChatActivity)启动时,正确显示数据需要大约3秒的延迟。
换句话说:数据在3秒之前没有正确显示,但在3秒后数据显示出来。
常见聊天应用中的案例
在常用的聊天应用中,当您点击聊天室时,数据就在那里(没有加载进度和没有闪屏)。
我知道什么,我认为
1)我知道firebase通过保持节点同步来保持节点在磁盘上同步和更新。
像这样使用:
reference.keepSynced(true);
我也知道firebase在从服务器读取之前从磁盘读取。
2)我认为大多数聊天应用都会在您点击聊天室之前准备数据,因此您可以在那里找到它(没有加载)。
对于如何处理此问题的任何建议表示赞赏。
答案 0 :(得分:0)
解决方案1
如果您不希望延迟3秒钟,则可以考虑在聊天室加载并将数据传递给聊天活动时预考聊天。
解决方案2
使用像room或realm这样的离线数据库保存图表历史记录,然后从firebase加载聊天时从那里获取聊天,并在加载时合并数据。