2016-06-02 4 views
5

मैं ऐसी वेबसाइट बनाने की कोशिश कर रहा हूं जो उपयोगकर्ताओं के लिए ईमेल ऑथ का उपयोग करे। हालांकि, हर बार जब मैं किसी उपयोगकर्ता में साइन अप या लॉग इन करने का प्रयास करता हूं, तो firebase.auth() .AuthStateChanged फ़ंक्शन आग लगती है, लेकिन यह पहचान नहीं पाती कि उपयोगकर्ता ने लॉग इन किया है या साइन अप किया है। यह मेरा वर्तमान कोड है। मुझे पता है कि यह काम करता है क्योंकि यह मुझे सतर्क करेगा, "कोई उपयोगकर्ता नहीं!" प्रत्येक लॉग इन या साइन अप करने के बाद और क्योंकि मैं अपने फायरबेस कंसोल में जा सकता हूं और देख सकता हूं कि उपयोगकर्ता ने साइन अप किया है। अगर कोई इसे ठीक करने के बारे में जानता है, तो मैं इसकी सराहना करता हूं!firebase.auth()। OnAuthStateChanged काम नहीं कर रहा

धन्यवाद!

कोड: प्रवेश & साइन अप के लिए

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

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

कोड:

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

क्या आप अपना अधिक कोड डाल सकते हैं ??? ??? यह समझने के लिए कि आप कैसे और कब लॉगिन करते हैं और – Ymmanuel

+0

में साइन इन करते हैं, मैंने इसे मूल प्रश्न में जोड़ा है। दोनों कार्यों को बटन क्लिक के माध्यम से निकाल दिया जाता है। – Collin

+0

ऐसा प्रतीत होता है कि यह अब तक कोई जवाब नहीं है ...:/http://stackoverflow.com/questions/37504466/firebase-auth-createuserwithemailandpassword-undefined-is-not-a-function – Collin

उत्तर

1

ऐसा लगता है कि मेरी समस्या मेरे डोमेन कि Firebase परियोजना के लिए OAuth के संचालन के लिए अधिकृत नहीं किया गया था .. मैं अपने डोमेन को अधिकृत लोगों की सूची में जोड़ना भूल गया था।

इसे ठीक करने के लिए, अपने फायरबेस परियोजना> प्रमाणीकरण> साइन-इन विधि> प्राधिकृत डोमेन के अंतर्गत अपना डोमेन जोड़ें।

सहायता के लिए @Ymmanuel पर धन्यवाद।

संबंधित मुद्दे