我的firebase实时数据库如下:
{
"items" : {
"push-id-1": {
"itemName": "some name",
"userId": "authorization-id-1",
"list": {}
},
"push-id-2": {
"itemName": "awesome name",
"userId": "authorization-id-2",
"list": {
"push-id-list-1": {
"some": "data"
}
}
}
}
}
我对访问规则设置有疑问。我想:
GET /items/
-仅返回分配给特定用户的项目。 (使用authorization-id-2
的用户只能看到push-id-2
项。)
POST /items/
-只有登录用户才能创建新项目。
POST /items/push-id-2/
-知道项目ID的任何人都可以在list
上创建新项目(未登录)
我的配置如下:
{
"rules": {
"items": {
"$itemId": {
".write": "auth !== null",
".read": "auth.uid === root.child('items').child($itemId).child('userId').val()",
"list": {
"$pushId": {
".write": "!data.exists()"
}
},
"userId": {
".validate": "auth.uid === newData.child('userId').val()"
}
}
}
}
}