我正在编写一段代码,使用 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/