【问题标题】:Firebase Rules ConfigurationFirebase 规则配置
【发布时间】: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


【解决方案1】:

由于您的安全规则不允许任何人写信给/users,因此您在模拟器中尝试的写信给/users 是正确的拒绝。如果您想查看用户是否可以编写自己的节点,您需要写信至/users/e32bcdf5....(或任何他们的 UID)。

【讨论】:

    猜你喜欢
    • 2018-10-21
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 2020-08-19
    • 1970-01-01
    • 2017-06-02
    相关资源
    最近更新 更多