如何删除用户';是否使用javascript从firebase数据库中获取信息(即使他/她当前未登录)?

如何删除用户';是否使用javascript从firebase数据库中获取信息(即使他/她当前未登录)?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在编写一段代码,使用angular从firebase数据库中删除用户信息。我随身携带了所需用户的电子邮件id。数据库的结构如下所示 用户 |_唯一键 ||u电子邮件:价值 ||_标记:值 |_唯一键 |_…要做到这一点,首先你必须在规则中为孩子的“电子邮件”编制索引,然后 { "rules": { "users": { ".indexOn": "email", ".read" : "auth.uid !== null", ".write"

我正在编写一段代码,使用angular从firebase数据库中删除用户信息。我随身携带了所需用户的电子邮件id。数据库的结构如下所示

用户
|_唯一键
||u电子邮件:价值
||_标记:值
|_唯一键

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

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

根据您的方案编写读写规则,尝试一下,现在保持这两个值都为真@schimayThank,成功了!你能解释一下forEach在这种情况下到底在做什么吗?是的,因为你使用了“value”,它会调用父节点,而不是child,所以要访问parentNode的子元素,你必须使用forEach,如果你知道父键,那么forEach就没有用了。如果您使用child_添加、更改或删除instaed of value,则在这种情况下,每个都没有使用。因为您使用电子邮件发送给orderby,这是在唯一键下,所以您必须根据规则对其进行索引。