Состояние Firebase onAuthStateChange () не меняется - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь ввести пользователя в свое приложение. Я ожидаю, что когда пользователь введет данные и войдет в систему, он будет перенаправлен на console.log(user); данные учетной записи. Проблема в том, что консоль просто показывает Not logged in даже после того, как я пытаюсь войти в систему. Что касается общего потока приложения, когда пользователь успешно входит в систему, из облачной функции отправляется токен, который отображается в консоли. Я не понимаю, что я здесь делаю не так.

function signIn() {
  var usernameValue = document.getElementById("sign-in-username").value;
  var passwordValue = document.getElementById("sign-in-password").value;

  fetch("http://localhost:5001/.../europe-west3/api/login", {
    method: "POST",
    mode: "cors",
    headers: {
      "Content-type": "application/json",
    },
    body: JSON.stringify({
      username: usernameValue,
      password: passwordValue,
    })
  })
    .then((res) => {
      return res.json();
    })
    .then((data) => {
      console.log(data)
    })
    .catch((error) => console.log("ERROR"));
}

Состояние аутентификации не меняется.

auth.onAuthStateChanged(function (user) {
  if (user) {
    window.location.href = "user.html";
    console.log(user);
  } else {
    console.log("Not logged in");
  }
});

1 Ответ

3 голосов
/ 14 июля 2020

Если вы используете какую-то конечную точку API для входа пользователя, это никогда не повлияет на состояние аутентификации, наблюдаемое Firebase SDK. Наблюдатель состояния аутентификации сработает только тогда, когда вы также используете Firebase SDK для входа в систему. Например, он срабатывает, когда вы вызываете такие методы, как signInWithEmailAndPassword () , или любой из методов, которые начинаются с «signIn».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...