我如何编写此Firebase规则?

时间:2017-09-20 21:39:47

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

这是我的数据结构

"Users": {
  "userId" : {
    "email" : "xxxx@gmail.com",
    "points" : 50,
    "subscriber" : false
  }
}

这是我指定的当前规则

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

使用该规则^^它允许我写入"User"引用,但我想要的是

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

但是这个规则^^不允许我写入"User"引用,这意味着我甚至无法创建一个无需更新它的引用。

我尝试使用

"User":{
".write": "auth != null" // << -- this line overrode the entire children
  "$uid": {
    ".read": "$uid == auth.uid",
    ".write": "$uid == auth.uid"
   }
}

我正在寻找一种方法,让经过身份验证的用户可以写入"User"引用,但只有经过匹配uid的经过身份验证的用户才能读取和更新uid节点。

1 个答案:

答案 0 :(得分:1)

使用此:

{
  "rules": {
    "users": {
      "$user_id": {
        ".write": "$user_id === auth.uid"
      }
    }
  }