【发布时间】:2017-08-05 22:01:19
【问题描述】:
假设我的 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": "???",
}
}
}
【问题讨论】:
标签: firebase firebase-realtime-database firebase-security