离线更新文档时,Firestore的脱机持久性行为如何?

时间:2019-05-09 10:32:15

标签: firebase google-cloud-firestore

我正在读this question,但我很担心。

道格在回答中所说的是有道理的:持久性的目的是缓存文档,因此将来不需要读取。一旦将来(从设备)更新了文档,缓存也将更新,您就可以了,一切都很好,很漂亮。

如果离线更新文档怎么办?

假设您有一个带名称字段的用户文档,其值为“ Doug”。该文档已缓存在您手机上的应用程序中。

然后,我们的用户转到您应用的网络版本,并将名称更改为“ Stevenson”。您的手机永远不会知道,对吗?您手机的应用程序永远不会更新其缓存中的文档,因为它不知道文档是否已更新?

这不是说不应该将脱机持久性与多客户端应用程序一起使用吗?还是有办法解决这个问题?

注意:我并不是在说手机离线。我说的是在线电话。即使在线,根据我的实验,缓存也不会更新。仅当文档是从设备中 时才更新缓存。

1 个答案:

答案 0 :(得分:1)

  

您的手机永远不会知道吗?

是的,由于电话处于离线状态,因此不知道服务器上正在发生什么。

  

您手机的应用程序永远不会在其缓存上更新该文档,因为它不知道它已经被更新了吗?

只要文档保持脱机状态,就永远不会更新它。当重新联机时,电话将从Firebase服务器获取新数据。

  

这不是说不应该将脱机持久性与多客户端应用程序一起使用吗?

这就是它的实际工作方式。