次のようなデータ構造があります。
{
"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」レベルに移動すると、リスト全体への読み取りアクセスが許可されます。
だから私は自分のデータを再構築する必要があると思いますが、これを行う最善の方法がわかりませんか? 特定のファームにも多数の「編集者」ユーザーを追加したいので、ユーザー オブジェクトの下にファーム オブジェクトを追加したくありません。
ご協力いただきありがとうございます