我正在读this question,但我很担心。
道格在回答中所说的是有道理的:持久性的目的是缓存文档,因此将来不需要读取。一旦将来(从设备)更新了文档,缓存也将更新,您就可以了,一切都很好,很漂亮。
如果离线更新文档怎么办?
假设您有一个带名称字段的用户文档,其值为“ Doug”。该文档已缓存在您手机上的应用程序中。
然后,我们的用户转到您应用的网络版本,并将名称更改为“ Stevenson”。您的手机永远不会知道,对吗?您手机的应用程序永远不会更新其缓存中的文档,因为它不知道文档是否已更新?
这不是说不应该将脱机持久性与多客户端应用程序一起使用吗?还是有办法解决这个问题?
注意:我并不是在说手机离线。我说的是在线电话。即使在线,根据我的实验,缓存也不会更新。仅当文档是从设备中 时才更新缓存。
答案 0 :(得分:1)
您的手机永远不会知道吗?
是的,由于电话处于离线状态,因此不知道服务器上正在发生什么。
您手机的应用程序永远不会在其缓存上更新该文档,因为它不知道它已经被更新了吗?
只要文档保持脱机状态,就永远不会更新它。当重新联机时,电话将从Firebase服务器获取新数据。
这不是说不应该将脱机持久性与多客户端应用程序一起使用吗?
这就是它的实际工作方式。