javascript - 如何从 javascript 中的 firebase 数据库中删除用户的信息(即使他/她当前未登录)?

标签 javascript firebase firebase-realtime-database

我正在编写一段代码,使用 Angular 从 firebase 数据库中删除用户信息。我有所需用户的电子邮件 ID。数据库结构如下。

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

好的,所以我有电子邮件 ID 并在 orderByChild() 的 equalTo() 中使用它的值,我使用“值”方法获取用户。现在,我想访问该用户的唯一 key 以删除他/她的数据。这就是我的处理方式。

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();
     }) ;
     
     
  }

但出于某种原因,“用户”变量中没有存储唯一 key ,而是存储了“用户”,我无法删除所需的信息。请帮忙 !

最佳答案

要做到这一点,首先你必须在规则中为你的 child “电子邮件”编制索引

{
  "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(); })});
}

关于javascript - 如何从 javascript 中的 firebase 数据库中删除用户的信息(即使他/她当前未登录)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44832092/

相关文章:

javascript - 从 Angular JS 中的装饰器内部调用工厂服务

javascript - 火狐开发者工具: JavaScript files show up as HTML

android - SMS Retriever API 不适用于 Firebase PhoneAuth

javascript - firebase child_added 到底如何工作?

javascript - 如何正确地使 Meteor 模板具有反应性?

ios - 如果用户在 iOS Swift 中登录,则从某个 View 开始

javascript - 简单的 Firestore 查询无法为我提供集合中的完整文档

android - 从 Android 应用程序写入谷歌 FireBase 不工作

node.js - 如何连接两个表并获取firebase中子表的所有数据库

javascript - jsPerf.com Chrome 的 node.js 基准测试结果是否可靠?