簡體   English   中英

如何從Javascript中的Firebase數據庫中刪除用戶的信息(即使他/她當前未登錄)?

[英]How to delete a user's info(even if he/she is not currently logged in) from firebase database in javascript?

我正在編寫一段代碼,使用angular從Firebase數據庫中刪除用戶的信息。 我有要求的用戶的電子郵件ID。 數據庫的結構如下。

 users |_unique key | |_email:value | |_tag:value |_unique key |_... 

好的,所以我有電子郵件ID,並在orderByChild()的equalTo()中使用它的值,然后使用“值”方法獲取用戶。 現在,我想訪問該用戶的唯一密鑰以刪除其數據。 這就是我要做的。

 deleteUser(email) { console.log(email); var userid; firebase.database().ref('users').orderByChild('email').equalTo(email).on("value",(snapshot)=>{ userid=snapshot.key; console.log(snapshot); console.log(userid) firebase.database().ref('users/userid').remove(); }) ; } 

但是由於某種原因,不是存儲唯一的密鑰到'userid'變量中,而是存儲了'users',我無法刪除所需的信息。 請幫忙 !

為此,您首先必須在規則中索引孩子的“電子郵件”

{
  "rules": {
      "users": {
      ".indexOn": "email",
      ".read" : "auth.uid !== null",
      ".write" : "auth.uid !== null"
    }
  }
}

編寫此規則后,現在使用此功能

deleteUser(email)
  {  
console.log(email);
var userid;
firebase.database().ref('users').orderByChild('email').equalTo(email).once('value', function(data) { data.forEach(function(child) { 
userid = child.key
console.log(userid);
firebase.database().ref('users/'+userid).remove(); })});
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM