使用电子邮件/密码进行Firebase身份验证

时间:2018-12-10 03:35:49

标签: javascript firebase-authentication

我正在使用以下功能通过Firebase身份验证登录现有用户,但是由于某种原因什么也没有发生。我没有收到错误或确认。    我可以将相同的代码粘贴到DOM控制台中并登录,但是由于某种原因,当我从JS文件中调用此函数时,什么也没做。    我已经确认电子邮件/密码的输入正确,并且相信这可能是异步问题,但不确定如何解决。

 $('.user-login').on("submit", function () {
   var email = $('.email-login').val().trim();
   var password = $('.password-login').val().trim();
   console.log(email + ' ' + password)
firebase.auth().signInWithEmailAndPassword(email, password)
  .then(function () {
    console.log('logged in')
  })
  .catch(function (error) {
    console.log(error);
  });

})

2 个答案:

答案 0 :(得分:1)

.onAuthStateChanged是处理登录的方法。

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  }
});

答案 1 :(得分:0)

我使用此代码已有一段时间,并且在所有浏览器上都可以正常工作。并且还会在发生错误时为您提供错误信息。

function signIn() {
  var email = document.querySelector("#email").value;
  var password = document.querySelector("#password").value;
  firebase.auth().signInWithEmailAndPassword(email, password).catch(function (error) {
    // Handle Errors here.
    var errorCode = error.code;
    var errorMessage = error.message;
    window.alert(errorMessage);
  });
}

这用于处理用户状态更改(例如他的登录和注销)事件。

var user = firebase.auth().currentUser;

    firebase.auth().onAuthStateChanged(function (user) {
          if (user) {

        }
        });