是否可以取消Firestore写操作?

时间:2019-04-07 20:15:11

标签: android firebase google-cloud-firestore

我正在使用位置跟踪应用程序。我将每10分钟将用户位置数据更新到数据库中一次。例如,“源位置”是A,“目标位置”是D。

如果用户到达位置B,我会将最后一个位置更新为B。当用户到达C,然后再更新为D,假设如果互联网连接中断,则C和D的位置详细信息将不会保存在数据库中。

然后,如果Internet正常工作,它可能会在第一个D位置写入C,然后在C位置之后写入,但顺序不正确。因此数据库中的最后一个位置将是C而不是D。

有什么解决办法吗?

1 个答案:

答案 0 :(得分:0)

无法取消挂起的写入。

我可以想到两种选择:

  1. 使用数据库事务并将文档的新值基于现有值。
  2. 使用安全规则来确保仅允许有效转换。一种典型的方法是在每个写操作中添加(客户端)时间戳,并在时间戳太旧的情况下拒绝写操作。