我正在尝试使用Firebase实时数据库。我创建了一个节点:1:
,因为我创建了一个节点users
。 JSON就像下面的那个
user_1
我已启用离线持久性&为该特定节点{
"user_1" : {
"firstName" : "User",
"lastName" : "Last",
"middleName" : "S"
}
}
启用了同步。
user_1
首先,我打开了App&同步FirebaseDatabase.getInstance().setPersistenceEnabled(true);
FirebaseDatabase.getInstance().getReference().child("users").child("user_1").keepSynced(true);
数据。然后我杀了应用程序,但设备仍然连接到互联网。我对Firebase控制台中的user_1
节点进行了更改。过了一段时间,我已经断开了互联网。我再次打开了应用程序,听取了该节点user_1
。但离线数据未与Firebase Server的最新数据同步。这是否意味着,user_1
仅在应用程序处于前景时才起作用?
答案 0 :(得分:1)
当您致电keepSynced(true)
时,Firebase实时数据库客户端会在您的应用处于活动状态时同步该位置的数据。
如果您强制终止该应用,则客户端将不再处于活动状态,并且将不再同步。
当你的背部进入后台时,它可能会继续同步一段时间。是否这样做以及持续多长时间取决于Android版本和设备制造商。鉴于他们努力减少后台数据的使用(以延长电池寿命),我建议不要依赖它。