首页 > 解决方案 > 即使条件为假,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);
}

你可以在这里看到警报。我可以向您保证,如果站点加载,它会自动运行。

警报

有人知道如何解决这个问题吗?

标签: javascriptfirebase

解决方案


用于if (user.emailVerified) {..}检查用户是否已通过验证。


推荐阅读