如何在Firebase中安全地构造我的用户数据

时间:2019-01-24 13:55:39

标签: firebase firebase-realtime-database data-structures nosql firebase-security-rules

我正在与用户和公司一起构建应用程序。这是我目前构造数据的方式:

  "users" : {
    "userid1" : {
      "email" : "oops@gmail.com",
      "id": "userid1",
      "type": "user"
    },
    "userid2" : {
      "email" : "not@gmail.com",
      "id": "userid2",
      "type": "company"
    },

我希望公司编辑自己的个人资料,并且对用户可见。用户应该能够对公司进行评分。这些是我的数据库规则:

{
"rules": {
  ".write": "auth.uid != null",
  ".read": "auth.uid != null"
 }
}

1 个答案:

答案 0 :(得分:0)

  

我希望公司编辑自己的个人资料并对用户可见。

在您当前的结构中,最简单的实现方法是:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "data.child('type').val() === 'company'",
        ".write": "$uid === auth.uid && data.child('type').val() === 'company'"
      }
    }
  }
}

我强烈建议您查看其他questions about the Firebase Realtime Database and security rules,以了解有关执行,不执行和常见陷阱的更多信息。