我已经设置了一些这样的监听器:
deviceListener = db.addSnapshotListener(this::handleDbChange)
Run Code Online (Sandbox Code Playgroud)
当我有一个稳定的互联网连接时,处理程序会在数据更改时触发并允许我更新我的应用程序。但是,当我失去并重新获得互联网连接时,处理程序停止启动。这并不总是在第一次失去连接时发生,但它总是在我的连接中断 2 或 3 次后发生。
我尝试删除侦听器并在网络更改时重新添加它们。此外,我尝试在重新建立网络连接后直接获取数据:
db.get().add().addOnCompleteListener {
val snapshot = it.result
snapshot.toObject(Model::class.java)
}
Run Code Online (Sandbox Code Playgroud)
但是,这仍然为陈旧数据提供服务。我发现解决此问题的唯一方法是重新启动应用程序。
如果其他人遇到过这个问题,我很感激你对如何解决它的任何见解。仅供参考,我正在使用com.google.firebase:firebase-firestore:17.0.2库的版本。