【问题标题】:Data Structure for Secured Nodes?安全节点的数据结构?
【发布时间】:2017-03-06 23:45:54
【问题描述】:

简单的报价工具。只想向“经销商”显示价格/定价。下面这个结构合适吗?

如果我在builds\$key\price 节点上设置更具体的规则(以限制价格访问),那么似乎非经销商试图在builds\-Ke_yHGa-c-acXF5_J9B 上读取.once 会失败。

那么,我必须建立一个单独的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"
    }
  }
}

【问题讨论】:

    标签: firebase firebase-realtime-database


    【解决方案1】:

    Firebase 安全规则允许访问完整的节点。一旦您授予对节点的访问权限,您就无法在较低级别取消该访问权限。因此,您不能有允许用户访问所有属性的规则,价格除外。

    如果价格需要与该节点的其他部分不同的安全规则,您确实需要将价格拉出该节点/分支。

    对于类似的情况,请在此处查看我的答案:How to create public/private user profile with Firebase security rules?

    【讨论】:

    • 感谢您的确认。我花了大约 3 个小时才弄清楚这一点,我不得不真正考虑一下。现在看你的其他答案...
    猜你喜欢
    • 2014-11-10
    • 2013-06-28
    • 1970-01-01
    • 2010-10-05
    • 2017-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    相关资源
    最近更新 更多