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

0 firebase firebase-security

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

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

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

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

{
   "rules": {
       ".read": true,
       ".write": "file3 in auth.access"
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Fra*_*len 5

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

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

users
    twitter:214
        files
            file1: true
            file2: true
    twitter:469
        files
            file2: true
Run Code Online (Sandbox Code Playgroud)

那么你的规则是:

".write": "root.child('users/'+auth.uid+'/files/file1').exists()"
Run Code Online (Sandbox Code Playgroud)