在我的Firebase应用程序中,每个用户都属于一家公司(一家公司可能有很多用户),并且表中的数据分为Table_name \ COMPANY_ID \
COMPANY_ID在“用户”表中定义。
例如“项目”表如下:
Items\<COMPANY_ID>\Item_1
Items\<COMPANY_ID>\Item_2 and so on
用户表定义为:
Users\<AUTH_ID>\
其中AUTH_ID是身份验证ID
我想设置规则,以便用户只能访问自己公司的数据。如何为Items表(以及所有其他表)制定读写规则?
答案 0 :(得分:1)
类似这样的事情应该可以解决:
{
"rules": {
"Items": {
"$companyId": {
".read": "root.child('Users').child(auth.uid).child('CompanyId').val()
=== $companyId"
}
}
}
}
换句话说:如果认证用户CompanyId
与公司相匹配,则允许其读取公司的数据。