允许用户只使用firebase规则读取自己的内容?

时间:2016-08-16 17:43:01

标签: firebase firebase-realtime-database firebase-security

我试图将用户设置为只获取自己的对象。我有一个在fb-database上有3个属性的任务:task-text,datetime,user。用户有用户uid。我想编写一条规则,允许用户只读取自己的任务。

到目前为止,我有这个并且它不起作用:

{
    "rules": {
        "tasks": {
            ".read": "auth.uid == data.child('user').val()",
            ".write": "auth.uid != null",
        }
    }
}

1 个答案:

答案 0 :(得分:3)

您需要按用户分解任务,因此您将拥有如下结构:

root
  tasks
    Puf
      ...
    Andrew
      ...
    James
      ...

这可以通过以下规则来保护:

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