2016-05-21 9 views
6

:Firebase 3 - ref.getAuth() eşdeğer Firebase 2 kullanıcı, örneğin oturum edildi olmadığını görmek için senkron denetimi yapmak başardı yılında

if (!ref.getAuth()) ..go to login page 
else ..show page 

Öyle firebase.auth().currentUser ile currentUser devlet erişebilirsiniz .

if (!firebase.auth().currentUser) ..go to login page 
else ..show page 

problem, giriş sayfasına tekrar yönlendiren sonra birkaç dakika sonra onAuthStateChanged olur ve kullanıcı giriş böylece bu, her zaman başlangıçta boş olmasıdır

: yapmaya çalıştığım

Bunu senkronize olarak kontrol etmenin bir yolu var mı? Ya da başka bir şey var mı ki dinleyebileceğim bir söz var mı? Teşekkürler. Ben kullanıcı oturum olup olmadığını belirlemek için bir auth devlet dinleyici kullanıyorum

cevap

2

.

auth.onAuthStateChanged(function(user) { 
    console.log('authStateChanged', user); 
    if (user) { 
     console.log("Welcome UID:" + user.uid); 
    } 
    }); 

o hemen dinleyici takmak, doğru devletle patlayacaktır. Ben app çalıştırdığınızda

, oturum ve sayfayı, günlük çıkışlar yeniden:

authStateChanged Fl {...}

Hoşgeldin UID: 052289713245805425655890E9024AB4ADBA5404B3C0

Yani kullanıcının zaten oturum açmış olup olmadığını algılamak için dinleyicinin çağrıldığı ilk kez kullanılabilir.

+0

Teşekkürler ama benim için küçük bir 2s ya da öylesine bir gecikme olduğunu düşünüyorum, bir yükleme dönüşümü göstermek ve sonra 'onAuthStateChanged' olduğunda sayfayı yönlendirmek veya göstermek zorunda kalacağım. –

+0

Yukarıdaki kodla akış doğrudur. Gecikme kullanıcı için fark edilirse, "OnAuthStateChanged()" işlevi etkin olduğunda görüntü yüklendiğinde ve gizlendiğinde bunu göstererek kolayca bir yükleme göstergesi ekleyebilirsiniz. –

+0

Yaptığım şey budur - iyi bir şey eksik olduğumu bilmem ve beklenen yol –

0

Aynı sorunu yaşadım ve b Angular kullanıyorum, AngularFire'da $ getAuth() senkronize bir çağrı buldum. Belki de ReactFire kitaplığında bir eşdeğer vardır. :)