关于java:Firebase数据库无法正确同步

Firebase Database Not Syncing Properly

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

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

要进行同步,

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

但是,每次我重新打开应用程序时,加载所有新消息都需要3-5秒。
那么我该如何解决此问题。.

预先感谢...


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

尽管存在连接,但Firebase SDK通常仅在您在该位置具有活动侦听器时才同步该位置中的数据。当您在某个位置调用keepSynced(true)时,如果该位置中没有活动的侦听器,它也会同步。

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

为减少用户在重新启动应用程序时必须等待的时间,您可以通过调用setPersistenceEnabled(true)告诉Firebase将其缓存存储到磁盘。由于从磁盘加载通常比从网络加载更快,因此可以加快速度。


启用脱机功能,以便您的应用将缓存那些数据

1
FirebaseDatabase.getInstance().setPersistenceEnabled(true);

启用脱机功能