只有用户才能在Firebase中删除自己的数据

时间:2019-01-13 19:01:20

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

我想在Firebase数据库中编辑我的规则,我只想让他可以删除或编辑数据的用户属于他们,而其他用户则不能编辑或删除。

我的数据库

enter image description here

l制定了类似的规则,但是任何用户都可以更新或删除

{
    "rules": {
        "report": {
             ".read": "auth != null",
                            ".write": "!data.exists() || !newData.exists()"
        }
    }
}

任何解决方案吗?

1 个答案:

答案 0 :(得分:0)

我只复制官方文档中的粘贴authorization part

  

Firebase数据库规则包含内置变量和函数   允许您引用其他路径,服务器端时间戳,   身份验证信息等。这是一个规则示例   向/users/<uid>/授予已认证用户的写访问权限,其中    是通过Firebase身份验证获得的用户的ID。

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


当我们谈到您的问题时:

1)因此,您的文档必须保留userId字段才能将其与所有者相关

2)您必须在其中添加这样的规则:

{
    "rules": {
        "report": {
             ".read": "auth != null",
             ".write": "auth != null && ( (data.exists() && data.userId === auth.uid) || !data.exists() || !newData.exists() )"
        }
    }
}