Pregunta

Estoy bastante seguro de que este es un problema de mí, no entendiendo completamente a JavaScript asíncrono, pero explicaré mi problema.

Tengo un correo electrónico / contraseña autenticado con FireBase, y tengo una página de inicio de sesión con el siguiente formulario:

<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>

Cuando hago clic en el botón, obtengo el siguiente error en My JS Console que parpadea realmente rápidamente:

Sin captura TypeError: No se puede leer la propiedad 'token' de indefinido --- Firebase-Simple-Login.js: 132

En la parte inferior de mi etiqueta principal, incluyo el script "JS / Firebase.js" y este es ese archivo:

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
    });
}

Después de completar el formulario, presione el botón y obtenga el error, los campos se ponen en blanco y hay un "? #" agregado al final de mi URL.Si intento iniciar sesión después de esto funciona perfectamente.¡Gracias de antemano!


¿Fue útil?

Solución

La primera vez que carga esta página y haga clic en "Iniciar sesión", su formulario se está enviando y la página está recaudando, evitando que se inicie sesión simple de completar con éxito.Consulte Cómo evitar que los botones envíen formularios .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top