嵌套对象上的 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()
affectedKeys
、changedKeys
、removedKeys
和 unchangedKeys
上的行为是否相同?
好的,我用rules.debug找到了答案
在日志中,它打印
set_value {
values {
string_value: "a"
}
values {
string_value: "c"
}
}
所以基本上{"a":{"b":"1"},"c":"2"}.diff({}).addedKeys() == ["a","c"].toSet()
它忽略嵌套 属性
我很好奇MapDiff methods 如何处理嵌套对象
例如addedKeys
,仅用于顶级对象
{"a":1}.diff({}).addedKeys() == ["a"].toSet()
这就是它的工作原理
但是嵌套对象呢?
{"a":{"b":"1"},"c":"2"}.diff({}).addedKeys() == [????].toSet()
affectedKeys
、changedKeys
、removedKeys
和 unchangedKeys
上的行为是否相同?
好的,我用rules.debug找到了答案
在日志中,它打印
set_value {
values {
string_value: "a"
}
values {
string_value: "c"
}
}
所以基本上{"a":{"b":"1"},"c":"2"}.diff({}).addedKeys() == ["a","c"].toSet()
它忽略嵌套 属性