2016-06-02 57 views
5

Kullanıcılar için e-posta auth kullanan bir web sitesi oluşturmaya çalışıyorum. Ancak, bir kullanıcı oturum açmaya veya bir kullanıcı oturumu açmaya çalıştığımda, firebase.auth(). OnAuthStateChanged işlevi tetiklenir, ancak bir kullanıcının giriş yaptığını veya kaydolduğunu fark etmez. Bu benim mevcut kodum. Çalıştığını biliyorum çünkü beni uyaracak "Kullanıcı yok!" Her girişten sonra veya kayıt olduktan sonra Firebase konsoluma gidebilir ve kullanıcının kaydolduklarını görebiliyorum. Bunu nasıl düzelteceğini bilen varsa, bunu takdir ediyorum!firebase.auth(). OnAuthStateChanged Not

Teşekkürler!

Kodu: GİRİŞ & kayıt için

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

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

KODU:

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

Kodunuzun daha fazlasını koyabilirsiniz ... ??? Nasıl ve ne zaman giriş yaptığınızı anlamak ve – Ymmanuel

+0

oturum açmak için özgün soruya ekledim. Her iki işlev de düğme tıklamaları ile tetiklenir. – Collin

+0

Görünüşe göre bu, şu anki cevapsız bir sorundur:/http://stackoverflow.com/questions/37504466/firebase-auth-createuserwithemailandpassword-undefined-is-not-a-function – Collin

cevap

1

benim sorunum alanım o Firebase proje için OAuth operasyonları için yetkilendirilmedi olduğu anlaşılmaktadır .. Alanımı yetkili olanlar listesine eklemeyi unutmuştum.

Bunu düzeltmek için Firebase projeniz> Kimlik Doğrulama> Oturum Açma Yöntemi> Etki alanınızı Yetkili Etki Alanları altında ekleyin.

Yardım için @Ymmanuel'a teşekkürler.