【发布时间】:2019-05-27 10:21:35
【问题描述】:
我想在用户未连接到互联网时更新 Firebase 数据库。就像您在应用程序中一样,现在您关闭了互联网连接,您关闭了应用程序。所以我使用LifeCycleObserver 来检测应用程序是在前台还是在后台。我想在我的应用程序类中调用 onStop 时将用户状态设置为离线。当互联网连接打开时,它可以正常工作。
我已经尝试过 OnDisconnect().setValue(-) 但它不起作用。谁能帮我解决这个问题?
userDatabase.child(AppConstants.USER_IS_ONLINE).onDisconnect().setValue(status,object : DatabaseReference.CompletionListener{
override fun onComplete(p0: DatabaseError?, p1: DatabaseReference) {
Log.d("Success","YES")
}
})
【问题讨论】:
-
你什么时候打电话给
onDisconnect()?请记住,您必须在用户连接到服务器时调用它,否则客户端无法将该指令发送到服务器。 -
当应用程序同时处于前台和后台时,我正在调用 onDisconnect()。当我的互联网连接正常时,一切正常。
-
感谢您的帮助@Frank van Puffelen 和 Alex Mamo。我解决了那个问题。再次感谢 Frank van Puffelen 你的这一点“当用户连接到服务器时你必须调用它”点击了我的脑海。现在它工作得很好。当我们的应用程序连接到服务器时调用 OnDisconnect。我面临的下一个问题是,当我使用工作计划恢复互联网时,如何让用户恢复在线。现在它工作正常谢谢你们