仅列出您有权访问的项目

时间:2014-04-06 21:46:12

标签: firebase firebase-security

背景

我有一组任何用户可以附加的项目,但您只能读/写您拥有的项目。

这是我正在努力的简化版本。我不能仅仅$uid部分路径,因为这些项目也会与特定的其他用户共享。

"session": {
  "$other": {
    ".validate": "(!data.child('owner').exists() && newData.child('owner').val() == auth.uid) || newData.child('owner').val() == data.child('owner').val()",
    ".read": "data.child('owner').val() == auth.uid",
    ".write": "newData.child('owner').val() == auth.uid"
  }
}

根据上述规则,用户可以push({ owner: my_uid })进入列表。我已经确认该用户可以读取和写入新创建的记录。

问题

我的用户如何找到它有权访问的所有记录?

1 个答案:

答案 0 :(得分:0)

"session": {
  "index": {
    "$uid": {
      ".read": "$uid == auth.uid",
      "$sessionid": {
        ".write": true
      }
    }
  },
  "$other": {
    ".validate": "(!data.child('owner').exists() && newData.child('owner').val() == auth.uid) || newData.child('owner').val() == data.child('owner').val()",
    ".read": "data.child('owner').val() == auth.uid",
    ".write": "newData.child('owner').val() == auth.uid"
  }
}

每次创建session/<id>/时,我都会使用此方法在session/index/<uid>/<id>下创建一个条目。因为任何用户都可以写入该地址,但只有您可以从中读取,我应该能够通过写入索引与其他用户共享。