在嵌套对象上激发存储安全规则MapDiff方法



我很好奇MapDiff方法是如何在嵌套对象上工作的

例如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()

它忽略嵌套属性

最新更新