2016-12-13 3 views
1

Следующий код генерирует нулевой пользователь при обновлении веб-страницы сразу после входа в систему. Кроме того, страница автоматически выходит из системы, когда истекает токен доступа. Как исправить эту проблему?onAuthStateChanged не работает после обновления

function initApp() { 
    firebase.auth().onAuthStateChanged(function(user) { 
     console.log("user in onAuthStateChanged:"); 
     console.log(user); 
     userGlobal = user; 
     if (user) { 
     $("#logindiv").hide(); 
     $("#userWelcome").text("Welcome, " + user.email); 

     $("#logOut").click(function(){ 
      firebase.auth().signOut().then(function() { 
      $("#logindiv").show(); 
      $("#testdiv").hide(); 
      }, function(error) { 
      alert(error); 
      }) 
     }); 

     $("#testdiv").show(); 

     visiProgcontroller.init(function() { 
      visiProgcontroller.makeUIactions(); 
     }) 
     } 

     else { 
     $("#loginButton").click(toggleSignIn); 
     $("#logindiv").show(); 
     $("#testdiv").hide(); 
     } 

    }) 
    } 

    window.onload = function() { 
    initApp(); 
    }; 

EDIT: Вероятная причина обусловлена ​​следующим кодом. Когда я прокомментирую это, onAuthStateChanged возвращает недействительный пользователь. Как только я верну его, пользователь будет пустым. Любое образованное предположение о том, почему это блокирует/делает пользователя нулевым?

visiProgcontroller.init(function() { 
     visiProgcontroller.makeUIactions(); 
    }); 

РЕШЕНИЕ

НАЙДЕНО ошибку. Я делал localStorage.clear(), и я думаю, что firebase каким-то образом использует это локальное хранилище для проверки токена доступа.

ответ

0

Как вы сказали в недавнем редактировании, ваша ошибка была поднята после того, как вы уволили localStorage.clear(). Для получения дополнительной информации о том, как это может повлиять на ваше приложение по-разному, вам может понадобиться look at this article.

Рад, что вы получили его на работу!

Смежные вопросы