Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Firestore安全规则-如何在地图中只允许地图中的某些字段_Firebase_Google Cloud Firestore_Firebase Security - Fatal编程技术网

Firebase Firestore安全规则-如何在地图中只允许地图中的某些字段

Firebase Firestore安全规则-如何在地图中只允许地图中的某些字段,firebase,google-cloud-firestore,firebase-security,Firebase,Google Cloud Firestore,Firebase Security,我有一个名为“list”的文档,其中包含一个名为“list”的字段,该字段是一个映射,其中值是一个新映射,该映射只应包含键“color”和“description”。我正在尝试编写规则,确保键仅为“颜色”和“描述”,但我似乎找不到将地图中的键名限制在地图中的方法 (之所以它是单个文档中的映射映射,是因为我有一个安全规则,其中数组类型的字段只能包含从“list.list.keys()”中指定的元素) 我试过了 request.resource.data.list.values()[request

我有一个名为“list”的文档,其中包含一个名为“list”的字段,该字段是一个映射,其中值是一个新映射,该映射只应包含键“color”和“description”。我正在尝试编写规则,确保键仅为“颜色”和“描述”,但我似乎找不到将地图中的键名限制在地图中的方法

(之所以它是单个文档中的映射映射,是因为我有一个安全规则,其中数组类型的字段只能包含从“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"]);

但这不起作用,因为新值的索引是随机的,因为它是一个映射。

除非您知道
列表下值键的所有可能名称(“依赖项”和“测试”在您的案例中是可以的),否则这将无法强制执行。没有通配符映射键的方法,当前也没有迭代映射键的方法。您必须知道可以添加的所有内容的完整路径,以便使用安全规则对其进行检查。

除非您知道
列表下的值键的所有可能名称(“依赖项”和“测试”在您的情况下是可以的),否则这将无法强制执行。没有通配符映射键的方法,当前也没有迭代映射键的方法。您必须知道可以添加的所有内容的完整路径,以便使用安全规则检查它们