javascript - 即使条件为假,firebase 也会获取价值并发出警报
问题描述
此代码登录用户,如果用户登录,它将从实时数据库中获取数据并警告窗口。但是由于某些奇怪的原因,它甚至会在用户未登录时提醒窗口。
function login(){
var email = document.getElementById("email_field").value;
var password = document.getElementById("password_field").value;
firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
window.alert("Sign in failed! Wrong Password or Email")
// ...
});
}
database = firebase.database();
var ref = database.ref('test');
ref.on('value', gotData, errData);
function gotData(data){
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
window.alert(data.val()); // the value is 9810 in the database
} else {
}
});
}
function errData(err){
console.log('Error!');
console.log(err);
}
你可以在这里看到警报。我可以向您保证,如果站点加载,它会自动运行。
有人知道如何解决这个问题吗?
解决方案
用于if (user.emailVerified) {..}
检查用户是否已通过验证。
推荐阅读
- c - C中的数组和空字符
- c# - Xamarin --- 短时间播放安卓闹钟
- python - 在文件系统中创建和共享 python 包
- python - 与输入参数一样多的元组?
- javascript - 难以对同一目录中的两个 javascript 文件使用导入/导出,不使用反应或节点
- azure-cosmosdb - 如何针对在 VM 中运行的 Cosmos DB 模拟器对 Node.js MongoClient 进行身份验证?
- kubernetes - 由于权限被拒绝,对 pod 的“kubectl cp”失败
- python - 使用函数从字典列表中提取值
- python - 查找一列的最大值并得出与该行对应的值
- c# - 创建指向另一个对象的重定向器方法