嵌套对象上的 Firestore 安全规则 MapDiff 方法

Firestore security rule MapDiff methods on nested object

我很好奇MapDiff methods 如何处理嵌套对象

例如addedKeys,仅用于顶级对象

{"a":1}.diff({}).addedKeys() == ["a"].toSet()

这就是它的工作原理

但是嵌套对象呢?

{"a":{"b":"1"},"c":"2"}.diff({}).addedKeys() == [????].toSet()

affectedKeyschangedKeysremovedKeysunchangedKeys 上的行为是否相同?

好的,我用rules.debug找到了答案

在日志中,它打印

set_value {
  values {
    string_value: "a"
  }
  values {
    string_value: "c"
  }
}

所以基本上{"a":{"b":"1"},"c":"2"}.diff({}).addedKeys() == ["a","c"].toSet()

它忽略嵌套 属性