我对理论情况以及 Firestore JS SDK 如何处理它有疑问。
设置是:
- 我们启用了离线持久性。
- 我们离线
- 我们需要在上线后立即从集合 A 中
get()
。
我会夸大数字以使情况更容易理解。
步骤
- 离线时,我们向集合 A 添加 1000000 个文档。
- 我们重新上线,假设 Firestore 开始将本地数据从集合 A 同步到服务器,这需要一段时间。
- 我们从集合 A 中执行
get()
,而 Firestore 可能尚未完成同步。
会发生什么?这里的假设是,当 Firestore 检测到我们再次在线时,它会尝试从在线数据库中找到的集合 A 中获取文档,因此可能会错过一些仍在同步的文档步骤 2。
Firebase 工程师能否澄清在这种情况下会发生什么?
最佳答案
本地客户端始终会看到自己的更改。因此,即使您处于离线状态,它也会看到您在本地集合中所做的更改。当您重新上线时,它也会看到在本地所做的更改,无论这些更改是否已同步到服务器。
关于javascript - 并发、离线持久化和 get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47533770/