Je suis confronté à un problème d'authentification Web Firebase. Il n'y a pas d'erreur de retour dans la console depuis Firebase, j'ai délibérément essayé différentes combinaisons de mauvais mot de passe et d'ID d'e-mail, mais aucune erreur n'a été enregistrée dans la console. En utilisant le nom d'utilisateur et le mot de passe de connexion corrects, rien ne s'affiche et en utilisant le code à l'aide de chrome-dev-tools, la fonction ne s'exécute pas. quelqu'un peut-il aider? Merci d'avance ...
Compte tenu du code javaScript et des codes HTML ci-dessous, pourriez-vous s'il vous plaît vérifier le code pour confirmer quelque chose que j'ai manqué ??
Mais tout dans l'application Android fonctionne bien pour ce même projet p >
Ajout de localhost dans le domaine sous authentification et j'exécute l'application dans localhost.
login.html
<!-- language: lang-javascript --> // Your web app's Firebase configuration var firebaseConfig = { // added the required codes here }; // Initialize Firebase firebase.initializeApp(firebaseConfig); firebase.analytics(); //Handle Account Status firebase.auth().onAuthStateChanged(user => { if(user) { window.alert("logged in"); } }); const auth = firebase.auth(); function signIn(){ var username = document.getElementById('username').value; var password = document.getElementById('password').value; console.log(username+password); firebase.auth().signInWithEmailAndPassword(username, password).catch(function(error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; console.log(errorCode+" "+errorMessage); // ... }); }
firebase.js p>
<!DOCTYPE html> <html lang="en"> <head> <title>Login</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" type="text/css" href="css/util.css"> <link rel="stylesheet" type="text/css" href="css/main.css"> <script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-analytics.js"></script> <script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-auth.js"></script> <script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-firestore.js"></script> <script src = "js/firebase.js"></script> <script src="js/main.js"></script> <script src="js/userOperations.js"></script> <!--===============================================================================================--> </head> <body> <div class="limiter"> <div class="container-login100"> <div class="wrap-login100"> <form class="login100-form validate-form p-l-40 p-r-40 p-t-178"> <span class="login100-form-title"> <img src="./img/logo.png"> </span> <div class="wrap-input100 validate-input m-b-16" data-validate="Please enter username"> <input class="input100" type="email" placeholder="Email" id = "username"> <span class="focus-input100"></span> </div> <div class="wrap-input100 validate-input m-b-16" data-validate = "Please enter password"> <input class="input100" type="password" placeholder="Password" id = "password"> <span class="focus-input100"></span> </div> <div class="container-login100-form-btn "> <button onclick="signIn()" class="login100-form-btn shadow"> LOGIN </button> </div> <div class="text-right p-t-13 p-b-23"> <span class="txt1"> <a href="register_selection.html"> Register Now </a> </span> <span class="txt2"> <a href="recover.html"> Forgot Password? </a> </span> </div> <div class="flex-col-c p-t-70 p-b-40"> <span class="txt4 p-b-9"> Copyright © 2019 </span> </div> </form> </div> </div> </div> </body> </html>
3 Réponses :
Utilisez un try-catch
et voyez
... try { firebase.auth().signInWithEmailAndPassword(username, password); } catch(error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; console.log(errorCode+" "+errorMessage); // ... } ...
Salut, merci pour votre réponse rapide J'ai essayé cela mais je ne reçois toujours rien.
signInWithEmailAndPassword ()
renvoie une Promise pour laquelle vous devez gérer les deux états finaux possibles, soit résoudre
avec .then ()
(manquant dans votre code) ou rejeter
avec .catch ()
(ce que vous faites).
Donc, il vous manque la partie .then ()
où vous obtiendriez généralement les données utilisateur et / ou vous redirigeriez vers une autre page ...
Salut merci pour votre réponse. Changé le code comme ceci `firebase.auth (). SignInWithEmailAndPassword (nom d'utilisateur, mot de passe) .then (function (firebaseUser) {window.alert (" connecté "); // Success}) .catch (function (error) {/ / Gestion des erreurs window.alert ("got errr");}); ''
Merci pour vos suggestions et solutions, mais j'ai résolu ce problème en changeant la classe de formulaire
en div
dans le fichier HTML