我是 Firebase 的新手,我试图设置安全规则,我希望用户按动态创建的组进行分组。我还希望用户能够阅读来自同一组的所有内容,但不能阅读其他组。
当我创建新用户并使用推送为他们分配一些组时,我得到如下数据:
{
"groups" : {
"default" : {
"-Jtcdyniz1yVwNQCGSAR" : {
"user" : "simplelogin:5"
},
"-Jtd114KNQ-rqh6-rlnI" : {
"user" : "simplelogin:7"
}
}
},
"users" : {
"simplelogin:5" : {
"group" : "default",
"name" : "123"
},
"simplelogin:6" : {
"group" : "default1",
"name" : "1"
},
"simplelogin:7" : {
"group" : "default",
"name" : "23"
}
}
}
有人可以在这里帮忙吗?如何设置身份验证规则?我尝试了以下但它似乎不起作用......
{
"rules": {
"users" : {
"$userid" : {
".read" : "data.child('users').child($userid).child('group').val() === data.child('users').child(auth.id).child('group').val()",
".write" : "$userid === auth.uid"
}
}
}
}
我认为这应该是相当简单的用例,但不幸的是没有得到太多帮助。
我发现的任何帖子都有一个组内的直接用户,而不是随机、唯一字符串的子子项。
编辑:
我尝试使用已编辑的规则,例如:
{
"rules": {
"groups" : {
".read" : "true",
".write" : "true"
},
"users" : {
"$userid" : {
".read" : "data.child('group').val() === root.child('users').child(auth.id).child('group').val()",
".write" : "$userid === auth.uid"
}
}
}
}
但我没有得到太多帮助。
对于代码,我已将其添加为提琴手:http: //jsfiddle.net/digish_gabhawala/ytwmokg0/
我现在想要的是两件简单的事情:1> 作为用户,我应该能够编辑我的名字 2> 当我点击按钮时,我应该能够获取我组中所有用户的名字。
当我在提琴手中尝试代码时,我遇到了权限问题。
如果我能明白我做错了什么,那就太好了。