[英]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.