Firebase在加载到回收站视图

时间:2017-11-28 09:12:58

标签: android firebase firebase-realtime-database offline-caching

我正在我的应用中实现聊天功能。我已经使用了2个活动(ChatRoom活动)和(ChatActivity)。

聊天室活动

这将是显示聊天室的活动。

聊天活动

这将是显示聊天消息的活动,这意味着点击聊天室时启动的活动。

我的问题

我使用子监听器来获取消息,并使用回收器视图来显示它们。这很好。

但问题是,当(ChatActivity)启动时,正确显示数据需要大约3秒的延迟。

换句话说:数据在3秒之前没有正确显示,但在3秒后数据显示出来。

常见聊天应用中的案例

在常用的聊天应用中,当您点击聊天室时,数据就在那里(没有加载进度和没有闪屏)。

我知道什么,我认为

1)我知道firebase通过保持节点同步来保持节点在磁盘上同步和更新。

像这样使用:

  reference.keepSynced(true);

我也知道firebase在从服务器读取之前从磁盘读取。

2)我认为大多数聊天应用都会在您点击聊天室之前准备数据,因此您可以在那里找到它(没有加载)。

对于如何处理此问题的任何建议表示赞赏。

1 个答案:

答案 0 :(得分:0)

解决方案1 ​​

如果您不希望延迟3秒钟,则可以考虑在聊天室加载并将数据传递给聊天活动时预考聊天。

解决方案2

使用像room或realm这样的离线数据库保存图表历史记录,然后从firebase加载聊天时从那里获取聊天,并在加载时合并数据。