如果他们没有登录,我将匿名登录我的用户,但是没有触发onAuthStateChanged回调。此外,每当我尝试使用mAuth.getCurrentUser().getUid()
时,它都会给我一个NullPointerException。这是我的代码:
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
}
});
}
}
};
被困在这几个小时,我不知道问题是什么。
提前感谢您的帮助。
答案 0 :(得分: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());
}
并检查异常