2017-02-20 36 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