允许其他用户读取/写入数据Firebase数据库

时间:2019-04-01 20:59:49

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

我有一个像这样的数据库树

users
-UID
--items
---all the data

我想在UID下添加诸如shared:another-UID之类的内容,并允许其他UID读取和写入项下的所有内容。

例如:

users
-UID
--shared:different_UID
--items
---all the data

我当前的规则是这样的

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

我如何更改规则以允许这样做?

1 个答案:

答案 0 :(得分:0)

在这种情况下,您的规则将变为:

{
  "rules": {
    "users": {
      "$uid": {
        ".read": "auth != null && (auth.uid == $uid || data.child('shared').val() === auth.uid)",
        ".write": "auth != null && (auth.uid == $uid || data.child('shared').val() === auth.uid)"
      }
    }
  }
}

也就是说,如果密钥与用户ID相同,或者用户ID存储在数据下的shared属性中,则用户可以读取/写入此数据。