再次联机时禁用firebase setvalue

时间:2017-11-21 15:51:45

标签: android firebase firebase-realtime-database

我有许多客户端(Android设备)需要更新相同的资源。 问题是某些设备遇到脱机状态。 然后我有以下问题:

  • 设备A处于离线状态。
  • 设备A更新Resource1(R1)(没有更改传输到firebase服务器)
  • 设备B更新R1。这是按时间顺序发布的正确更新。
  • 设备A变为在线状态,所有旧更新都会覆盖设备B的最新更新和正确的更新。

Firebase文档说:

  

Firebase应用自动处理临时网络中断。离线时可以使用缓存数据,Firebase会在网络连接恢复时重新发送任何写入。

我认为如果我以某种方式阻止firebase在线发送所有请求,它将解决我的问题。 我还读到了可能使用日期(但是我需要依赖于每个设备的时间,并且任何情况下每个setvalue请求都会花费更多时间,所以我将检查服务器上的当前更新日期时间)

也许有人有类似的问题?

感谢

1 个答案:

答案 0 :(得分:0)

要解决您的问题,您只需要在记录之间使用唯一标识符。为此,我使用push()方法重新编程,根据时间生成唯一ID。如果要在UI中显示这些值,只需使用查询和orderByKey()方法,您的问题就会得到解决。

  

Firebase应用自动处理临时网络中断。

Firebase SDK会自动处理网络中断。我们不需要为此启用磁盘持久性。启用磁盘持久性可确保数据在应用程序重新启动后仍然存在。