【发布时间】:2020-10-01 04:13:16
【问题描述】:
当我点击登录按钮后代码执行时,
function login(){
var email=document.getElementById("email").value;
var password=document.getElementById("Password").value;
var Real_email="";
var Real_password="";
firebase.database().ref('/login').on('value',function(snapshot){
snapshot.forEach(function (childsnapshot){
Real_email=childsnapshot.val().email;
Real_password=childsnapshot.val().password;
alert("test");
})
});
if(email==Real_email && password==Real_password){
alert("correct username and password");
}else{
alert("Wrong username or password");
}
}
在第一个按钮上单击它会给出意外的输出。 输出顺序是,
- 用户名或密码错误。
- 测试。(一段时间后...)
但是当我再次单击登录按钮(第二次单击)时,它会提供预期的输出。 输出顺序是,
- 测试。
- 正确的用户名和密码。
我也试过下面的代码,
async function login(){
var email=document.getElementById("email").value;
var password=document.getElementById("Password").value;
var Real_email="";
var Real_password="";
await firebase.database().ref('/login').on('value',function(snapshot){
snapshot.forEach(function (childsnapshot){
Real_email=childsnapshot.val().email;
Real_password=childsnapshot.val().password;
alert("test");
})
});
if(email==Real_email && password==Real_password){
alert("correct username and password");
}else{
alert("Wrong username or password");
}
}
但它返回相同的结果。
因此如何使用 javascript 在第一次点击时检索 firebase 实时数据库数据?
【问题讨论】:
标签: javascript firebase asynchronous async-await