Firebase安全规则是否可以检查某人是否具有特定访问权限?

时间:2014-11-24 08:31:35

标签: firebase firebase-security

我可以使用关键字“in”来检查用户的身份验证是否与Firebase安全规则匹配吗?

例如,我创建了一个用户令牌:

var token = tokenGenerator.createToken({ "uid": "1234", "access": [file1, file2, file3] });

我想通过设置以下安全规则来检查用户是否可以访问特定文件:

{
   "rules": {
       ".read": true,
       ".write": "file3 in auth.access"
    }
}

我不确定这是否有效,或者Firebase安全性是否存在类似的模式。我想发布每个用户唯一的安全令牌,允许他们访问某些文件。

1 个答案:

答案 0 :(得分:5)

您所描述的是一种基于角色的安全形式,您绝对可以在Firebase上构建。

这要求您将角色存储在Firebase中(而不仅仅是将其动态添加到令牌中):

users
    twitter:214
        files
            file1: true
            file2: true
    twitter:469
        files
            file2: true

您的规则将是:

".write": "root.child('users/'+auth.uid+'/files/file1').exists()"