Firebase规则允许新用户包含和特定于用户的路径权限

时间:2017-10-12 13:55:12

标签: firebase firebase-security

在阅读了很多教程和StackOverflow的问题之后,我仍然无法想象如何去做。 所有教程都以以下规则开头:

"users":{
    "$uid":{
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
     }
}

但是当新用户登录(auth!= null)并保持读写用户特定的路径权限时,如何在用户节点中允许新用户?

换句话说: 是否有办法在登录后将新用户插入用户节点,同时限制他只读取和写入自己的节点?

另一个问题。我在另一个带有newData.exists()的节点中有一个写规则。在模拟器中,当我尝试将空数据写入节点时,它会按预期拒绝它,但它允许我将null写入此同一节点的子节点。节点写入规则不应该级联到其子节点吗?

1 个答案:

答案 0 :(得分:0)

您上面的规则将$uidauth.uid匹配。因此,例如,如果用户的UID是cKzMyjImSBX6ybzeCCCjf0qbTym1,则他们将只能阅读&在数据库中/users/cKzMyjImSBX6ybzeCCCjf0qbTym1写入,无论此密钥当前是否存在(如果写入时不存在,将创建它)。

来自Firebase documentation on rules

  

用户进行身份验证后,Firebase数据库中的auth变量   规则规则将填入用户的信息。这个   信息包括其唯一标识符(uid)以及链接   帐户数据,例如Facebook ID或电子邮件地址等   资讯