2016-06-02 24 views
5

Próbuję zbudować stronę internetową, która używa autoryzacji e-mail dla użytkowników. Jednak za każdym razem, gdy próbuję się zarejestrować lub zalogować użytkownika, uruchamia się funkcja firebase.auth(). OnAuthStateChanged, ale nie rozpoznaje, że użytkownik się zalogował lub zarejestrował. To jest mój obecny kod. Wiem, że to działa, ponieważ ostrzeże mnie: "Brak użytkownika!" po każdym logowaniu lub rejestracji i ponieważ mogę wejść do mojej konsoli Firebase i zobaczyć, że użytkownik się zarejestrował. Jeśli ktoś wie, jak to naprawić, byłbym wdzięczny!firebase.auth(). OnAuthStateChanged Nie działa

Dzięki!

Kod:

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

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

KOD do logowania & rejestracyjny:

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

czy możesz umieścić więcej kodu ... ??? aby zrozumieć, jak i kiedy logujesz się i zaloguj – Ymmanuel

+0

Dodałem go do pierwotnego pytania. Obie funkcje są uruchamiane za pomocą kliknięcia przycisku. – Collin

+0

Wygląda na to, że jest to typowy problem bez odpowiedzi od teraz ...:/http://stackoverflow.com/questions/37504466/firebase-auth-createuserwithemailandpassword-undefined-is-not-a-function – Collin

Odpowiedz

1

Wydaje się, że mój problem był mój domeny nie został dopuszczony do operacji OAuth dla tej Firebase projektu .. Zapomniałem dodać moją domenę do listy autoryzowanych.

Aby to naprawić, przejdź do projektu Firebase> Uwierzytelnianie> Metoda logowania> Dodaj swoją domenę w obszarze Domeny autoryzowane.

Dzięki za pomoc @Ymmanuel.