匿名登录不会触发onAuthStateChanged回调

时间:2017-02-20 15:14:10

标签: android firebase firebase-authentication

如果他们没有登录,我将匿名登录我的用户,但是没有触发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
                        }
                    });

                }
            }
        };

被困在这几个小时,我不知道问题是什么。

提前感谢您的帮助。

1 个答案:

答案 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());
}

并检查异常

相关问题