【发布时间】:2018-06-15 09:56:40
【问题描述】:
使用此链接https://firebase.google.com/docs/database/security/quickstart#sample-rules 中给出的示例实现用户级数据设置 希望仅在用户级别实现读/写访问,在其他节点上保持只读规则不变。
最终规则写成
{
"rules": {
"users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
},
".read": "auth != null",
".write": "false"
}
}
示例数据库结构
只想为用户节点而不是其他节点提供读/写访问权限。
示例 JSON 数据
{
"zmjilhwtlo":{
"MapData":[
{
"CaseId":"1",
"SectionId":"1"
},
{
"CaseId":"2",
"SectionId":"2"
}
],
"MapDataRoot":[
{
"SrNo":"1",
"IsFav":"0",
"ChapterNo":"data",
"ChapterName":"dad",
"ActId":"dfd",
"SectionName":"dfd",
"Description":"dfd"
}
]
},
"hvbxaotcxw":{
"MapData":[
{
"CaseId":"1",
"SectionId":"1"
},
{
"CaseId":"2",
"SectionId":"2"
}
],
"MapDataRoot":[
{
"SrNo":"1",
"IsFav":"0",
"ChapterNo":"data",
"ChapterName":"dad",
"ActId":"dfd",
"SectionName":"dfd",
"Description":"dfd"
}
]
},
"aundpytdod":{
"MapData":[
{
"CaseId":"1",
"SectionId":"1"
},
{
"CaseId":"2",
"SectionId":"2"
}
],
"MapDataRoot":[
{
"SrNo":"1",
"IsFav":"0",
"ChapterNo":"data",
"ChapterName":"dad",
"ActId":"dfd",
"SectionName":"dfd",
"Description":"dfd"
}
]
},
"embpkeanaj":{
"MapData":[
{
"CaseId":"1",
"SectionId":"1"
},
{
"CaseId":"2",
"SectionId":"2"
}
],
"MapDataRoot":[
{
"SrNo":"1",
"IsFav":"0",
"ChapterNo":"data",
"ChapterName":"dad",
"ActId":"dfd",
"SectionName":"dfd",
"Description":"dfd"
}
]
},
"users":{
}
}
【问题讨论】:
-
向我们展示您的数据库结构。
-
@AlexMamo - 数据库结构更新问题
-
我在您的架构中看不到
users节点和相应的 uid 隐藏它。你能添加一个更具体的吗? -
用户节点与其他节点处于同一级别。使用示例结构更新问题
-
你只是写入你在测试中使用的UID的路径,所以
/users/e32bcdf5....。
标签: android firebase firebase-realtime-database firebase-authentication firebase-security