Firebase электронная почта / пароль аутентификация в электронном - PullRequest
0 голосов
/ 08 июня 2019

Я сделал проверку подлинности с помощью электронной почты и пароля в своем электронном приложении, и это работает, но только на первой странице.Когда я перехожу на вторую страницу, я больше не вхожу в систему. Поскольку я новичок в elecetron.js и firebase, я также использовал этот учебник: https://www.youtube.com/watch?v=bWS0ocfszmE.

login.js

loginBtn.addEventListener('click', function() {
    var emailField = document.getElementById('email').value;
    var passwordField = document.getElementById('password').value;

    firebase.auth().signInWithEmailAndPassword(emailField, passwordField).then(function() {
        document.location.href = 'mainPage.html';
        console.log(firebase.auth().currentUser);

    }).catch(function(error) {
        if (error != null) {
            console.log(error.message);
            alertify.error(error.message);
            return;
        }
    });

secondpage.js

var firebase = require("firebase/app");
require("firebase/auth");
console.log(firebase.auth().currentUser);

Я ожидал, что в консоли будет отображаться вход пользователя, но я получил значение null.

1 Ответ

0 голосов
/ 08 июня 2019

Проблема в том, что на каждой новой странице Firebase Authentication будет проверять, действителен ли еще маркер входа пользователя.Поскольку это может занять некоторое время (и потребовать вызова сервера), это происходит асинхронно.И к тому времени, когда ваш console.log(firebase.auth().currentUser) запускается, процесс еще не завершен.

Вот почему вам нужно использовать onAuthStateChanged listener для обнаружения состояния аутентификациипользователь:

firebase.auth().onAuthStateChanged(function(user) {
  if (user) {
    // User is signed in.
  } else {
    // No user is signed in.
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...