Jer*_*ker 6 kotlin firebase google-cloud-firestore
我已经设置了一些这样的监听器:
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库的版本。
我知道这是一个迟到的回复,而且我只是这里的新手(所以我可能是错的),但对于其他人遇到这个......这可能是我遇到的问题的组合:
Firebase Firestore 批处理命令在重新获得连接后不会提交
其他人遇到的问题:
当 Internet 连接恢复时,Firestore 不会立即开始侦听更改
总之:
确保您在没有模拟器的情况下进行测试。
如果您需要实时数据,请关闭数据持久性。
Firestore 可能会使用不可控的计时器来指示在重新连接后何时重新连接侦听器。
| 归档时间: |
|
| 查看次数: |
1258 次 |
| 最近记录: |