首页 文章

当设备上线时Firebase实时数据库同步,但是应用程序没有打开?

提问于
浏览
0

我正在尝试Firebase实时数据库 . 我创建了一个节点 users ,因为我创建了一个节点 user_1 . JSON就像下面的那个

{
  "user_1" : {
    "firstName" : "User",
    "lastName" : "Last",
    "middleName" : "S"
  }
}

我已为该特定节点 user_1 启用了脱机持久性和同步功能 .

FirebaseDatabase.getInstance().setPersistenceEnabled(true);
FirebaseDatabase.getInstance().getReference().child("users").child("user_1").keepSynced(true);

首先,我打开了App并同步了 user_1 数据 . 然后我杀了应用程序,但设备仍然连接到互联网 . 我对Firebase控制台中的 user_1 节点进行了更改 . 过了一段时间,我已经断开了互联网 . 我再次打开了应用程序,听了那个节点 user_1 . 但离线数据未与Firebase Server的最新数据同步 . 这是否意味着, keepSynced() 仅在Application位于Foreground时才有效?

1 回答

  • 1

    当您致电 keepSynced(true) 时,Firebase实时数据库客户端会在您的应用处于活动状态时同步该位置的数据 .

    如果您强制终止应用程序,则客户端将不再处于活动状态,并且将不再同步 .

    当你的背部进入后台时,它可能会继续同步一段时间 . 是否这样做以及持续多长时间取决于Android版本和设备制造商 . 鉴于他们努力减少后台数据使用(以延长电池寿命),我建议不要依赖于此 .

相关问题