我正在使用Firebase Auth,并阅读了许多有关安全规则,自定义声明,云功能的文档,但是我确实变得更加困惑。
请考虑以下数据结构
{
"company": {
"idCompany1": {"data": "Restricted to Company1s users"},
"idCompany2": {"data": "Restricted to Company2s users"}
},
"users": {
"idUser1": {
"companies": {
"idCompany1": true
}
},
"idUser2": {
"companies": {
"idCompany1": true,
"idCompany2": true
}
}
}
}
我想在Firebase控制台中实现一个简单规则(Firebase安全规则),而无需修改我的数据结构。
我要配置的规则是:用户只能在其所属的公司中读取或写入信息(路径上的users / $ idUser / companies / $ idCompany === true company / $ idCompany)
目前,我仅配置了:
{
"rules": {
"company" : {
".read": "auth != null",
".write": "auth != null",
}
}
},
"users" : {
"$user_id" : {
".read": "auth != null",
".write": "auth.uid === $user_id"
}
}
如何在Firebase控制台中配置此Firebase安全规则?
答案 0 :(得分:1)
听起来您正在寻找:
{
"rules": {
"company" : {
"$companyid": {
".read": "root.child('users').child(auth.uid).child('companies').child($companyid).val() === true"
}
}
}
}
这将允许用户阅读其个人资料中列出的任何公司的/company/$companyid
。
注意:您将无法像rules are not filters一样读取/company
。