简单的引用工具。想要向“经销商”显示价格/定价。这种结构是否合适?
如果我在builds\$key\price
节点上设置了更具体的规则(以限制价格访问),那么尝试在.once
上阅读builds\-Ke_yHGa-c-acXF5_J9B
的非经销商似乎会失败。
那么,我必须构建一个单独的prices
根节点吗?我想是这样的......?
然后
{
"...some path...": {
".read": "root.child("dealers/" + auth.uid).val() === true"
}
}
提前致谢。
{
"builds" : {
"-Ke_yHGa-c-acXF5_J9B" : {
"created" : 1488843260381,
"last modified" : false,
"model" : "1VR",
"price" : "1999.00",
"status" : "saved",
"title" : "test build",
"uid" : "q5b9AJgWATdbNF5y2JZctitx1Qx2"
}
},
"dealers" : {
"DsZ1wSUOmsceMKqCKLZwhpg1vjA3" : true,
"R9s2qY6p87cas750wJz5wAB3sfJ3" : false,
"q5b9AJgWATdbNF5y2JZctitx1Qx2" : true
},
"users" : {
"DsZ1wSUOmsceMKqCKLZwhpg1vjC2" : {
"displayName" : "Eric Doe",
"photoUrl" : "http://abs.twimg.com/sticky/default_profile_images/default_profile_3_normal.png",
"provider" : "twitter.com"
},
"R9s2qY6p87cas750wJz5wAB3sfk5" : {
"displayName" : "Ron Royston",
"email" : "rrrrrrrr@gmail.com",
"provider" : "password"
},
"q5b9AJgWATdbNF5y2JZctitx1Qx2" : {
"displayName" : "Ron Royston",
"photoUrl" : "http://pbs.twimg.com/profile_images/809222728456675365/C-rlXjaN_normal.jpg",
"provider" : "twitter.com"
}
}
}
答案 0 :(得分:1)
Firebase安全规则允许访问完整的节点。授予对节点的访问权限后,您无法在较低级别访问该访问权限。因此,除了价格之外,您不能拥有允许用户访问所有属性的规则。
如果价格需要与该节点的其他部分不同的安全规则,您确实需要从该节点/分支中提取价格。
对于类似的情况,请在此处查看我的答案:How to create public/private user profile with Firebase security rules?