簡體   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