"-Kqpdfjp2Q9cAuqZHY5w" : {
"email" : "test@apple.com",
"gamerTag" : "ok"
},
"-Kqpdx7Xpwht-E1K4in0" : {
"email" : "Human@human.com",
"gamerTag" : "ok"
}
我想问的问题是,是否有办法搜索是否收到了电子邮件。我尝试了几种方法但它们似乎没有用。如果有人能解释我做错了什么,那将会有所帮助。我总是想从错误中吸取教训
一种方法:
goalRef.once('value', function(snapshot) {
if (snapshot.hasChild("test@apple.com")) {
alert('exists');
}else
{
alert('maybe');
}
});
第二种方法:
let human = goalRef.orderByChild("email").equalTo("test@apple.com");
human.update({
"email": "mat@gmail.com"
})
第二种方法是更新,但这也不起作用。
goalRef = firebase.database().ref('human');
答案 0 :(得分:0)
正如您的问题所示,您想检查电子邮件地址是否存在。
你可以选择第二种方法,因为它比第一种方法效率更高,因为在第一种方法中,你需要在用户群增长时迭代所有值,
因此采用第二种方法,Firebase将负责将值搜索到DatabaseReference
。
firebaseDB.ref("human")
.orderByChild("email")
.equalTo("test@apple.com")
.on('value', function (snapshot) {
if (snapshot.val() === null) {
console.log('Email is not present');
}else{
console.log('Email is present');
var key = snapshot.key;
var childData = snapshot.val();
//Your Code goes Here
}
});
注意:不要忘记在电子邮件字段中添加索引以便更有效地搜索
由于