Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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
Google cloud firestore Firestore规则:由于(建议)对request.auth.uid进行单一检查,因此用于创建用户的不安全规则通知_Google Cloud Firestore_Firebase Security - Fatal编程技术网

Google cloud firestore Firestore规则:由于(建议)对request.auth.uid进行单一检查,因此用于创建用户的不安全规则通知

Google cloud firestore Firestore规则:由于(建议)对request.auth.uid进行单一检查,因此用于创建用户的不安全规则通知,google-cloud-firestore,firebase-security,Google Cloud Firestore,Firebase Security,我想在数据库的用户文档中设置安全规则。特别是,用于创建用户 ,你可以写: match /users/{user} { allow create: if request.auth.uid != null // && other booleans to validate data 但是,仅写入request.auth.uid!=如果null没有与此值相关的任何其他布尔值,则角色无效,使此规则不安全。事实上: 在检查身

我想在数据库的用户文档中设置安全规则。特别是,用于创建用户

,你可以写:

match /users/{user} {
    allow create: if request.auth.uid != null
                            //  && other booleans to validate data
但是,仅写入request.auth.uid!=如果null没有与此值相关的任何其他布尔值,则角色无效,使此规则不安全。事实上:

在检查身份验证时,您可能还希望使用其中一个身份验证属性来进一步限制特定用户对特定数据集的访问。了解有关添加安全条件和基于角色的访问的详细信息

当然,在创建用户的情况下,这似乎是不可能的

但是,Firestore安全规则将向我发送至少存在一个不安全规则的通知:此规则


我如何处理这个问题?

我认为您的问题可以解决,同时您的firestore规则也可以改进

只需添加一个条件,检查添加新用户的currentUser是否已存在于users集合中


如果只允许一组特定的特权用户创建新用户,则可以通过检查currentUser是否具有添加新用户所需的权限来进一步增强该功能


希望这有帮助。

所以它看起来像:`allow create:if request.auth.uid!=空&!存在/databases/$database/documents/users/$request.auth.uid;`?是request.auth.uid!=在这种情况下需要null?您可以通过检查当前用户是否具有添加新用户所需的权限来进一步增强此功能==>用户创建自己的帐户,而不是另一个用户。@JarsOfJam调度程序auth实际上是一个包含有关已验证用户信息的变量,或者如果用户未经验证,则auth为null。因此,需要进行第一次检查,以便将创建限制为经过身份验证的用户。如果删除它,将导致空引用错误。我希望这能解决您的问题。@JarsOfJam Scheduler如果当前用户添加了自己的帐户,则可以省略增强功能。我会相应地更新我的答案。谢谢您指出。@JarsOfJam Scheduler是的,将抛出一个错误,如缺少或权限不足。