繁体   English   中英

Firebase 实时数据库 - 允许用户删除自己的数据

[英]Firebase Realtime Database - Allow users to delete their own data

我目前在我的数据库上有以下规则,基本上 (a) 允许用户输入他们的数据,如果他们还没有输入数据(这是他们第一次)-->.data.exists (b) 允许他们只写如果他们的新值小于当前值。 --> data.child('time').val() > newData.child('time').val() 最后 (c) 允许他们更改用户名 --> data.child('userName') .val().= newData.child('userName').val()"

以上所有功能都完美无缺,但现在由于 Google PLay 商店政策,我希望用户能够删除他们的数据,如果他们愿意的话。

我尝试了几种解决方案,如 data.exists() 但即使这绕过了我关于值检查的其他规则,如果它更少并允许写入大于现有值的值。

你能帮忙解决这个问题吗,如何添加另一条规则,允许用户删除他们更具体的用户 ID 的条目,同时以上所有内容继续工作

我的命令是

var DBTaskWrite = DBReference.Child("Users").Child("3X3").Child(_userID).RemoveValueAsync();
{
  "rules": {            
    //".read": true,
      "Users" : {
           "3X3": {
              ".indexOn": ["time"],
             ".read": "data.exists()",
             "$userID": {
               ".write": "!data.exists()  || data.child('time').val() > newData.child('time').val() || data.child('userName').val() != newData.child('userName').val()"
             }
          }
       }
    }
  }

尝试了有效的data.exists ,但绕过了其他规则。

如果您还想允许用户删除他们的数据,您可以将||.newData.exists()添加到规则中。 所以:

"$userID": {
  ".write": "!data.exists() || !newData.exists || ..."
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM