2016-06-02 49 views
5

Sto cercando di creare un sito Web che utilizzi l'autenticazione della posta elettronica per gli utenti. Tuttavia, ogni volta che provo ad accedere o ad accedere a un utente, la funzione firebase.auth(). OnAuthStateChanged si attiva, ma non riconosce che un utente ha effettuato l'accesso o registrato. Questo è il mio codice attuale. So che funziona perché mi avviserà, "Nessun utente!" dopo ogni accesso o registrazione e perché posso accedere alla mia console Firebase e vedere che l'utente ha effettuato l'accesso. Se qualcuno sa come risolvere questo problema, lo apprezzerei!firebase.auth(). OnAuthStateChanged Non funziona

Grazie!

Codice:

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

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

CODICE PER ACCESSO & ISCRIZIONE:

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

puoi inserire altro codice ... ??? per capire come e quando fai il login e accedi – Ymmanuel

+0

l'ho aggiunto alla domanda originale. Entrambe le funzioni vengono attivate tramite clic sui pulsanti. – Collin

+0

Sembra che questo sia un problema comune con nessuna risposta al momento ...:/http://stackoverflow.com/questions/37504466/firebase-auth-createuserwithemailandpassword-undefined-is-not-a-function – Collin

risposta

1

Sembra che il mio problema era il mio dominio non è stato autorizzato per le operazioni di OAuth per quel progetto Firebase .. Ho dimenticato di aggiungere il mio dominio all'elenco di quelli autorizzati.

Per risolvere questo problema, vai al progetto Firebase> Autenticazione> Metodo di accesso> Aggiungi il tuo dominio in Domini autorizzati.

Grazie a @Ymmanuel per l'aiuto.