2016-06-17 20 views
11

であるCurrentUserを取得できませんちょうどログインした)。は負荷

奇妙なことは、私は

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

をログに記録した場合、私は本当にここで何が起こっているのか分からないということ、です。私はReactとReduxを使用していますが、実際には問題はありません。

firebaseが初期化されていて、現在のユーザーにアクセスできない小さな遅延はありますか?もしそうなら、どのようにしてログの出力firebase.auth()でそれを見ることができますか?

答えて

12

よくある質問です。 https://firebase.google.com/docs/auth/web/manage-usersあなたは、初期状態と後続のすべての状態の変化を検出するために、onAuthStateChangedにオブザーバーを追加する必要が 、

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

このことは、認証状態の変更についての通知を取得するには、それがチェックする方法を私に提供していません。ユーザーが任意の時刻に認証された場合 – Chris

+3

実際には、これは初期状態が決定されると常に起動します。その後、認証状態が変更されるとトリガーされます。これは、最初の認証状態を検出するための推奨される方法です。最初の状態を決定した後で、それを削除することができます。 var unsubscribe = auth1.onAuthStateChanged(function(user){//初期設定を行い、次にサブスクライブしない; unsubscribe();}); – bojeil