我可以使用关键字“in”来检查用户的身份验证是否与Firebase安全规则匹配吗?
例如,我创建了一个用户令牌:
var token = tokenGenerator.createToken({ "uid": "1234", "access": [file1, file2, file3] });
我想通过设置以下安全规则来检查用户是否可以访问特定文件:
{
"rules": {
".read": true,
".write": "file3 in auth.access"
}
}
我不确定这是否有效,或者Firebase安全性是否存在类似的模式。我想发布每个用户唯一的安全令牌,允许他们访问某些文件。
答案 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()"