のは、私は私のFirebaseデータベースに次のようなデータ構造を持っていると仮定しましょう:Firebase複雑なルール
{
"allProjects": {
"foo": true,
"bar": true,
"baz": true
},
"allUsers": {
"user1": true,
"user2": true,
"user3": true
},
"projects": {
"foo": {
"name": "foo",
"members": {
"user1": true
}
},
"bar": {
"name": "bar",
"members": {
"user2": true
}
},
"baz": {
"name": "baz",
"members": {
"user1": true,
"user3": true
}
}
},
"users": {
"user1": {
"name": "user1"
},
"user2": {
"name": "user2"
},
"user3": {
"name": "user3"
}
}
}
問題
私は私のデータを保護することができるようにいくつかのルールを記述しようとしています。ここではいくつかの要件があります:
- ユーザーは、彼らが
- ユーザーのみがそれらと同じプロジェクトに属しているユーザーが表示されます(つまり
/project/:id/members/:userId === true
)の一部であるプロジェクトが表示されるはずです。
は、ここで私が思い付くことができたものです。
{
".read": false,
".write": false,
"allProjects": {
".read": "auth !== null"
},
"allUsers": {
".read": "auth !== null"
},
"projects": {
"$projectId": {
// requirement 1
".read": "data.child('members').hasChild(auth.uid)"
}
},
"users": {
"$userId": {
// requirement 2
".read": "???",
}
}
}