Firebase数据库无法正常同步

时间:2017-07-24 01:47:47

标签: java android firebase firebase-realtime-database

我正在尝试制作聊天应用程序。为此,我使用了firebase数据库。并使用FirebaseRecyclerAdapter显示消息。

 mNewAdapter = new NewChatRecyclerAdapter(
                    ChatMessageItem.class,
                    R.layout.message_item,
                    RecyclerView.ViewHolder.class, ref.limitToLast(300).orderByChild("timestamp"), isAMod, publicroom, Fusername, booIsPrivateChat, chatid, otheruser);

对于同步,

ref.limitToLast(300).orderByChild("timestamp").keepSynced(true);

但每次我重新打开应用程序时,加载所有新邮件需要3-5秒。 那么我该如何解决这个问题..

提前完成了......

2 个答案:

答案 0 :(得分:4)

Firebase数据库仅在与服务器建立活动连接时同步数据。这通常仅在应用处于活动状态时发生,因为Android在应用处于非活动状态时关闭连接。

当存在连接时,Firebase SDK通常仅在该位置具有活动侦听器时才同步位置中的数据。当你call keepSynced(true) on a location, it will also synchronize when there is no active listener in the location

调用keepSynced(true)对您应用中的主列表最有用,例如您在主要活动中显示的数据。通过保持同步,当用户处于不同的屏幕时,它也会更新。这样,当他们回到主要活动时,数据立即可用。

为了减少用户在重新启动应用时必须等待的时间,您可以tell Firebase to store its cache to disk by calling setPersistenceEnabled(true)。由于从磁盘加载通常比从网络加载更快,这可能会加快速度。

答案 1 :(得分:0)

启用离线功能,以便您的应用可以缓存这些数据

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

Enabling Offline Capabilities