Firestore规则:由于对request.auth.uid的(推荐)单次检查,导致创建用户的规则通知不安全

时间:2019-07-03 20:05:27

标签: google-cloud-firestore firebase-security-rules

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

According to the documentation,您可以编写:

match /users/{user} {
    allow create: if request.auth.uid != null
                            //  && other booleans to validate data

但是,according to the documentation again仅写request.auth.uid != null而没有任何其他布尔值涉及此值,因此该规则“不安全”。确实:

  

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

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

但是,Firestore安全规则会向我发送至少有一个不安全规则的通知:

我该如何处理这个“问题”?

1 个答案:

答案 0 :(得分:1)

我认为您的问题可以解决,并且您的Firestore规则可以同时得到增强。

只需添加一个条件来检查正在添加currentUser的{​​{1}}在newUser集合中是否已经存在。

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

希望这会有所帮助。