Question

Je suis à peu près sûr que c'est un problème de moi qui ne comprend pas complètement JavaScript asynchrone, mais je vais expliquer mon problème.

J'ai un email / mot de passe authentifié avec Firebase et j'ai une page de connexion avec le formulaire suivant:

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

Lorsque je clique sur le bouton, je reçois l'erreur suivante dans ma console JS qui clignote vraiment rapidement:

Company TypeError: Impossible de lire la propriété 'Jeton' de non défini - - Firebase-Simple-Login.js: 132

au bas de mon étiquette de tête, j'inclus le script "js / firebase.js" et c'est ce fichier:

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

Après avoir rempli le formulaire, appuyez sur le bouton et obtenez l'erreur, les champs vont en blanc et il y a un "? #" ajouté à la fin de mon URL.Si j'essaie de vous connecter après cela, cela fonctionne parfaitement.Merci d'avance!


Était-ce utile?

La solution

La première fois que vous chargez cette page et cliquez sur "Connexion" Votre formulaire est en cours de soumission et la page est rechargée, empêchant ainsi la connexion simple de la complétion avec succès.Voir Comment empêcher les boutons de la soumission de formulaires .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top