【问题标题】:Firestore Transaction security rules: caching and limitsFirestore 事务安全规则:缓存和限制
【发布时间】:2022-01-04 16:05:19
【问题描述】:

假设您在创建三个文档的客户端上执行 Firestore 事务:a、b 和 c。

在安全规则中,您为:

  • a: 用 getAfter 检查 b 和 c 是否存在
  • b:用getAfter检查a和c是否存在
  • c: 用 getAfter 检查 a 和 b 是否存在

所以我的问题是,这是否会导致 6 次读取计入限制,或者 Firestore 是否会缓存所有读取并且只会执行 3 次(甚至零?)读取。

感谢您的帮助!

【问题讨论】:

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


    【解决方案1】:

    在评估规则期间读取文档时,在评估同一规则期间第二次读取同一文档将使用先前读取的数据。它不会产生额外的读取。

    【讨论】:

    • 我在客户端生成 3 个单独的事务时读到这个问题,每个事务都创建一个文档 - 因此评估规则三次。我必须假设这会改变你的答案?
    • @LeadDreamer 问题特别指出涉及 3 个文档的“交易”(单数)。对于一个事务,所有相关规则将在同一个批次中进行评估,要么它们都允许所有写入,要么整个事务失败。如果不是这种情况,OP 应该更新问题以说明有什么不同。
    猜你喜欢
    • 2020-08-21
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 2018-05-17
    • 1970-01-01
    • 2019-08-20
    • 2021-04-12
    相关资源
    最近更新 更多