yük

2016-06-17 8 views
11

üzerinde CurrentUser alınamıyor kullanıcı böyle firebase.auth().currentUser üzerinden oturum olup olmadığını kontrol çalışırken:yük

Yukarıdaki getiri etrafında sayfayı yenileyin veya gezinmek zaman
if (firebase.auth().currentUser === null) { 
    console.log('User not signed in'); 
} 

(ı olsa bile boş yeni giriş yaptınız).

garip şey

console.log(firebase.auth().currentUser) // This returns null 
console.log(firebase.auth()) // Here I can inspect the object and currentUser exists...! 

Gerçekten burada neler olduğunu bilmiyorum oturum ise bu durum geçerlidir. React ve Redux kullanıyorum ama söyleyeceğim gerçekten önemli olmamalı.

Firebase'in başlatıldığı ve currentUser'e erişemediğiniz küçük bir gecikme var mı? Eğer öyleyse, onu firebase.auth() log çıkışında nasıl görebilirim?

cevap

12

Bu, sık sorulan bir sorudur. https://firebase.google.com/docs/auth/web/manage-users Sen başlangıç ​​durumunu ve sonraki tüm devlet değişiklikleri algılamak için onAuthStateChanged için bir gözlemci eklemem gerekiyor ,

firebase.auth().onAuthStateChanged(function(user) { 
    if (user) { 
    // User is signed in. 
    } else { 
    // No user is signed in. 
    } 
}); 
+2

Bu bir auth devlet değişiklikle ilgili bildirim almak için, bu kontrol etmek için bir yol beni sağlamaz Bir kullanıcı herhangi bir zamanda auth ise – Chris

+3

Aslında bu, ilk durum belirlendiğinde her zaman yanacaktır. Daha sonra, auth durumu değiştiğinde tetiklenir. Başlangıç ​​durumu durumunu tespit etmek için önerilen yoldur. İlk durumu belirledikten sonra kaldırabilirsiniz. var unsubscribe = auth1.onAuthStateChanged (işlev (kullanıcı) {// init işlerini yapın ve sonra aboneliğinizi iptal edin; abonelikten çık(););); – bojeil