登录后跳转页面反复刷新。 这是javascript代码:
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
// User is signed in.
window.location="comingsoon.html";
var user = firebase.auth().currentUser;
} else {
// No user is signed in.
}
});
function login(){
var userEmail = document.getElementById("email_field").value;
var userPass = document.getElementById("password_field").value;
firebase.auth().signInWithEmailAndPassword(userEmail, userPass).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
window.alert("Error : " + errorMessage);
// ...
});
}
function logout(){
firebase.auth().signOut();
}
最佳答案
您必须在执行代码后取消订阅事件监听函数onAuthStateChanged
。为此,您可以这样写:
const unsubscribeAfterAuth = firebase.auth().onAuthStateChanged(function (user) {
if (user) {
window.location="comingsoon.html";
var user = firebase.auth().currentUser;
} else {
// No user is signed in.
}
});
unsubscribeAfterAuth();
这样您就不会在第一次 onAuthStateChanged
后获得更新,因为您的函数在第一次调用后不会监听该事件。
关于javascript - 使用firebase登录后页面反复刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54888485/