2017-02-20 41 views
0

我登錄我的用戶匿名,如果他們沒有登錄,但onAuthStateChanged回調沒有被觸發。此外,每當我嘗試使用mAuth.getCurrentUser().getUid()時,它都會給我一個NullPointerException。這裏是我的代碼:匿名登錄不在觸發onAuthStateChanged回調

mAuth = FirebaseAuth.getInstance(); 
mAuthListener = new FirebaseAuth.AuthStateListener() { 

      @Override 
      public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 

       FirebaseUser user = firebaseAuth.getCurrentUser(); 

       if (user != null) { 

        // do something 

       } else { 

        mAuth.signInAnonymously().addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() { 
         @Override 
         public void onComplete(@NonNull Task<AuthResult> task) { 
          System.out.println("SIGNED IN ANONYMOUSLY"); 
          System.out.println(mAuth.getCurrentUser().getUid()); // crashes here 
         } 
        }); 

       } 
      } 
     }; 

一直呆在這幾個小時,我不知道這個問題可能是什麼。

在此先感謝您的幫助。

回答

1

我非常確定它是因爲你的signInAnonymously調用在onComplete回調中沒有返回成功。 更換

System.out.println("SIGNED IN ANONYMOUSLY"); 
System.out.println(mAuth.getCurrentUser().getUid()); 

if (task.isSuccessful()) { 
    System.out.println("SIGNED IN ANONYMOUSLY"); 
    System.out.println(mAuth.getCurrentUser().getUid()); 
} 
else{ 
    Log.i(TAG, "signInAnonymously", task.getException()); 
} 

,並檢查異常

+0

是的,謝謝,你是對的。我得到這個例外:http://pastebin.com/raw/AdyNrzR3,你有什麼想法可能導致它? – Zuhayr

+0

想通了,在我的身份驗證設置中沒有啓用匿名登錄lol。謝謝您的幫助。 – Zuhayr