我正在使用以下功能通过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);
});
})
答案 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) {
}
});