我有一个看起来像这样的数据结构:
{
"farms" : {
"-J3saHfe8_2GRqn3jOTc" : {
"stockunits" : {
"-J4CAeRI-IKKXVuNILCv" : {
"name" : "Chickens",
"totalStockUnits" : 115
}
},
"owner" : 3,
"name" : "smith"
},
"-J3sbbqsGabs5cLaj0zP" : {
"owner" : 2,
"name" : "brown"
}
}
}
当我查询“/farms”时,我想获取经过身份验证的用户是所有者的农场列表。我还想阻止用户查看他们不是所有者的农场。
我的规则目前如下所示:
{
"rules": {
".write": false,
".read": false,
"farms": {
"$farm": {
".read": "data.child('owner').val() == auth.id"
我通过将 .read 置于此级别来实现这一点,当通过 /farms/:farmid 访问时,我授予对单个农场的读取访问权限。如果我将“.read”移动到“farms”级别,这将导致授予对整个列表的读取访问权限。
所以我认为我需要重组我的数据,但不确定如何最好地解决这个问题?我不想在用户对象下方添加农场对象,因为我还想向任何给定的农场添加许多“编辑器”用户。
谢谢你的帮助