【问题标题】:Cloud Firestore have queries “Strong Eventual Consistency”?Cloud Firestore 有疑问“最终一致性强”?
【发布时间】:2021-05-26 04:46:05
【问题描述】:

鉴于我有 Cloud Firestore 数据库,并且所有文档都是使用 createdAt 字段创建的,使用 FieldValue.serverTimestamp() 和云功能。我不会直接在 Firestore 上编写/更新/删除任何文档。

如果我查询到现在日期时间之前的所有文档。

  1. 我会查询到现在的所有文件吗?或者如果我使用上次使用的时间戳再次查询,是否有机会出现一些新文档? (就像创建一些新文档的云功能过程)

  2. 查询结果是否一致? (如果 Cloud Firestore 不更改数据,则不会更改)

【问题讨论】:

    标签: firebase google-cloud-firestore google-cloud-functions


    【解决方案1】:

    Firestore 具有立即一致性模型:一旦完成写入,所有客户端都可以使用它,而不仅仅是其中的一部分。

    这意味着一旦将某个特定值 FieldValue.serverTimestamp() 写入您的 createdAt 字段,就永远不会写入更旧的值。

    【讨论】:

    • 如果我保存createdAt的最后一个时间戳,并在时间戳之后用于查询新文档,我会得到所有新文档吗?我需要对所有新文档使用 Equal/After 还是在时间戳之后?
    • 是的,这种方法可行。你需要一个>= 比较,因为相同的值可以出现多次。
    猜你喜欢
    • 2015-06-05
    • 1970-01-01
    • 2018-06-25
    • 2018-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多