2016-06-02 3 views
5

Ich versuche, eine Website zu erstellen, die E-Mail-Authentifizierung für Benutzer verwendet. Jedes Mal, wenn ich versuche, einen Benutzer anzumelden oder sich anzumelden, wird die Funktion firebase.auth(). OnAuthStateChanged ausgelöst, erkennt jedoch nicht, dass sich ein Benutzer angemeldet oder angemeldet hat. Dies ist mein aktueller Code. Ich weiß, dass es funktioniert, weil es mich alarmiert, "Kein Benutzer!" nach jedem Einloggen oder Anmelden und weil ich in meine Firebase-Konsole gehen kann und sehe, dass der Benutzer sich angemeldet hat. Wenn jemand weiß, wie das zu beheben ist, würde ich es begrüßen!Firebase.auth(). OnAuthStateChanged funktioniert nicht

Danke!

Code:

function initApp() { 
    firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
     alert("Signed in user!") 
    } else { 
     alert("No user!") 
    } 
    }); 
} 

window.onload = function() { 
    initApp(); 
}; 

CODE FÜR LOGIN & SIGNUP:

function toggleSignIn() { 
    if (firebase.auth().currentUser) { 
    alert("Sign out") 
    firebase.auth().signOut(); 
    // [END signout] 
    } else { 
    var email = document.getElementById('email').value; 
    var password = document.getElementById('pass').value; 
    if (email.length < 4) { 
     alert('Please enter an email address.'); 
     return; 
    } 
    if (password.length < 4) { 
     alert('Please enter a password.'); 
     return; 
    } 
    // Sign in with email and pass. 
    // [START authwithemail] 
    firebase.auth().signInWithEmailAndPassword(email, password).catch(function(error) { 
     // Handle Errors here. 
     var errorCode = error.code; 
     var errorMessage = error.message; 
     // [START_EXCLUDE] 
     if (errorCode === 'auth/wrong-password') { 
     alert('Wrong password.'); 
     } else { 
     console.error(error); 
     } 
     // [END_EXCLUDE] 
    }); 
    // [END authwithemail] 
    } 
} 

function handleSignUp() { 
    var email = document.getElementById('semail').value; 
    var password = document.getElementById('spass').value; 

    if (password.length < 6) { 
    alert('Password must be 6 characters or more!'); 
    return; 
    } 
    // Sign in with email and pass. 
    // [START createwithemail] 
    firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) { 
    // Handle Errors here. 
    var errorCode = error.code; 
    var errorMessage = error.message; 
    // [START_EXCLUDE] 
    if (errorCode == 'auth/weak-password') { 
     alert('The password is too weak.'); 
    } else { 
     console.error(error); 
    } 
    // [END_EXCLUDE] 
    }); 
    // [END createwithemail] 
} 
+0

können Sie mehr von Ihrem Code ... ??? Um zu verstehen, wie und wann Sie die Anmeldung vornehmen und sich anmelden – Ymmanuel

+0

Ich habe es zur ursprünglichen Frage hinzugefügt. Beide Funktionen werden durch Knopfklicks ausgelöst. – Collin

+0

Es scheint, dies ist ein häufiges Problem mit keiner Antwort ab sofort ...:/http://stackoverflow.com/questions/37504466/firebase-auth-createuserwithemailpassword-undefined-is-not-a-funktion – Collin

Antwort

1

Es scheint, dass mein Problem meine Domain nicht für OAuth-Operationen für das Projekt Firebase autorisiert wurde .. Ich hatte vergessen, meine Domain der Liste der autorisierten Domains hinzuzufügen.

Um dies zu beheben, gehen Sie zu Ihrem Firebase-Projekt> Authentifizierung> Anmeldeverfahren> Fügen Sie Ihre Domain unter Autorisierte Domains hinzu.

Dank @Ymmanuel für die Hilfe.

Verwandte Themen