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