Firestore脱机数据:合并写入,脱机持久性的最长时间

zin*_*ino 16 firebase google-cloud-firestore

https://firebase.google.com/docs/firestore/manage-data/enable-offline

Firestore如何处理离线数据?

  1. 多个客户端如何合并写入离线编辑相同数据的写入,然后同时联机?

  2. 离线数据持续多长时间?如果我的用户离线使用我的应用程序5年,然后重新上线,这是一个问题吗?设备重启后,离线更改是否仍然存在?

  3. 随着数据集变大,离线数据的查询性能是否会降低?

我特别感兴趣的是网络Firestore客户端.

所有语言客户端都以同样的方式实现上述功能吗?

谢谢.

Ale*_*amo 10

许多客户端如何离线合并编辑相同数据然后又同时联机的写入合并?

将在Firebase服务器上进行的写操作将按照该系列操作发生的顺序进行。最后一个操作(最新操作)将是在同步发生时在数据库中可用的操作。

离线数据可以保留多长时间?如果我的用户离线使用我的应用程序已有5年,然后又恢复在线状态,这会成为问题吗?

问题不在于设备离线时进行多少次操作。离线时,Firestore将使所有写操作排入队列。随着此队列的增加,本地操作和应用启动将变慢。没什么大不了的,但是随着时间的流逝,这些可能加起来。在这种情况下的主要问题是,最终结果将是服务器上的数据保持不变。那么,实时数据库的目的是什么?Firestore实际上是作为在线数据库设计的,可以在断开连接的短期到中期工作,而不是保持5年离线。除此之外,在5年内可能是兼容性问题,而不是写入次数问题。

设备重启后,离线更改是否仍然存在?

离线持久性也称为磁盘持久性。默认情况下,Cloud Firestore中启用了这种类型的持久性,这意味着最近侦听的数据(以及从应用程序到数据库的所有挂起的写操作)都将持久化到磁盘。此缓存中的数据在应用程序重启和设备重启后仍然有效。

数据集变大时,脱机数据的查询性能是否会降低?

是的,就像上面解释的那样。

所有语言客户端是否都以相同的方式实现上述目的?

否。对于iOS和Android,离线功能可以正常工作,而对于网络,此功能仍处于试验阶段。

  • 好的,所以我自己测试了这个,使用两个离线客户端,结果就是我上面所希望的。两个客户端仅影响他们更新的字段! (2认同)