使用firebase登录后重复刷新页面

问题描述 投票:3回答:1

登录后,重定向用户重定向的页面。这是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();

}
javascript html firebase firebase-authentication
1个回答
1
投票

执行代码后,您必须取消订阅事件监听功能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后获得更新,因为你的函数在第一次调用后不会收听事件。

© www.soinside.com 2019 - 2024. All rights reserved.