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

StackOverflow https://stackoverflow.com//questions/25072574

Вопрос

Я уверен, что это проблема меня не полностью понимает асинхронный JavaScript, но я объясню мою проблему.

У меня есть аутентификация электронной почты / пароля с Firebase, и у меня есть страница входа со следующей формой:

<form class="form-signin" role="form" action="#" onsubmit="return login(this);">
    <h2 class="form-signin-heading">Please log in</h2>
    <input type="email" id="email" class="form-control" placeholder="Email address" required autofocus>
    <input type="password" id="password" class="form-control" placeholder="Password" required>
    <button class="btn btn-lg btn-primary btn-block" type="submit">Log in</button>
</form>
.

Когда я нажимаю кнопку, я получаю следующую ошибку в моей консоли JS, которая очень быстро мигает:

Uncaught IseError: не удается прочитать свойство «токен» undefined --- FireBase-Simple-login.js: 132

В нижней части моей головки я включаю скрипт «JS / Firebase.js», и это тот файл:

var myRef = new Firebase("https://xxxx.firebaseio.com");

var auth = new FirebaseSimpleLogin(myRef, function(error, user) {
  if (error) {
    console.log(error);
  } else if (user) {
    console.log("User ID: " + user.uid + ", Provider: " + user.provider);
  } else {
  }
});

function login(form)
{
    auth.login('password', {
      email: form.email.value,
      password: form.password.value
    });
}
.

После того, как я заполняю форму, нажмите кнопку и получите ошибку, поля пропускаются пустыми, и в конце моего URL прилагается «? #».Если я попытаюсь войти после этого, это работает отлично.Заранее спасибо!


Это было полезно?

Решение

Первый раз, когда вы загружаете эту страницу, и нажмите «Войти», ваша форма отправляется, и страница перезагружается, предотвращая успешное завершение простого входа в систему.Смотрите Как предотвратить кнопки от отправки форм .

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top