我有一个名为“ list”的文档,其中包含一个名为“ list”的字段,该字段是值是新映射的映射,该映射只应包含键“ color”和“ description”。我正在尝试编写规则以确保键仅是“颜色”和“描述”,但是我似乎无法找到一种方法来限制地图内部地图中的键名称。
(之所以在singel文档中绘制地图是因为我有一个安全规则,其中array类型的字段只能包含从“ list.list.keys()”中指定的元素)
我尝试过
request.resource.data.list.values()[request.resource.data.list.values().size()-1].keys().hasOnly(["color", "description"])
&& request.resource.data.list.values()[request.resource.data.list.values().size()-1].keys().hasAll(["color", "description"]);
但这不起作用,因为新值的索引作为映射是随机的。
答案 0 :(得分:0)
除非您知道list
下的值的键的所有可能名称(如果可以,则为“ Dependencies”和“ Testing”),将无法强制执行。无法通配映射键,并且目前无法迭代映射键。您必须知道可以添加的所有内容的完整路径,以便使用安全规则进行检查。