仅获取用户对象Firebase?

时间:2016-07-01 10:35:45

标签: ios objective-c firebase firebase-realtime-database firebase-security

在我的Firebase数据库中,我有一个用户可以创建的节点列表。例如:

car: {
     $uid: {
          data...
     }
}

所有用户都可以创建car。但是,用户应该被允许获取他们所创建的car个节点。

我尝试了一些安全规则和查询,将用户uid存储在每个car中,以便我知道哪个用户创建了它。但是我没有运气。

如果有人可以提供一个如何实现这一目标的简单示例,我们将不胜感激。安全规则和查询的组合使我的大脑失去了一点!

感谢。

1 个答案:

答案 0 :(得分:1)

这样的事情:

{
  "rules": {
    "cars": {
      "$uid": {
        ".write": "auth.uid == $uid",
        ".read": "auth.uid == $uid"
      }
    }
  }
}

使用这些规则,登录用户可以在自己的cars子节点下创建他们想要的任何内容。如果您只希望他们一次创建/更新/删除一辆汽车,那么您可以:

{
  "rules": {
    "cars": {
      "$uid": {
        ".read": "auth.uid == $uid",
        "$carid": {
          ".write": "auth.uid == $uid"
        }
      }
    }
  }
}

在这些规则中,用户仍然可以读取他们的整个汽车列表。但他们一次只能创建/更新/删除一辆汽车。