如何解决Firebause getCurrentUser().getEmail 返回 null
我开发了一个 Android 应用程序,在我的一项活动中,我让用户可以删除他的帐户。
我用这个来做:
new CountDownTimer( 7000,500 ) {
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
FirebaseUser user = auth.getCurrentUser();
AuthCredential credential = EmailAuthProvider.getCredential( user.getEmail(),password );
user.reauthenticate( credential ).addOnCompleteListener( task -> user.delete() );
auth.signOut();
AuthUI.getInstance()
.signOut( context )
.addOnCompleteListener( task -> {
Intent intent = new Intent( context,MainActivity.class );
intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_CLEAR_TASK |
Intent.FLAG_ACTIVITY_NEW_TASK );
context.startActivity( intent );
} );
MainActivity.isDeleted = true;
}
}.start();
但是,我刚刚收到一位用户的日志,其中说应用程序崩溃的原因是:
Fatal Exception: java.lang.NullPointerException
Attempt to read from field 'c.d.d.q.j0.i0 c.d.d.q.j0.l0.g' on a null object reference
com.google.firebase.auth.internal.zzx.getEmail (zzx.java:4)
com.xxx.yyyy.PopUps$3.onFinish (PopUps.java:4)
android.os.CountDownTimer$1.handleMessage (CountDownTimer.java:127)
android.os.Handler.dispatchMessage (Handler.java:106)
android.os.Looper.loop (Looper.java:236)
android.app.ActivityThread.main (ActivityThread.java:7876)
java.lang.reflect.Method.invoke (Method.java)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:656)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:967)
我的理解是 user.getEmail 为空。
在所有其他活动中,如果我看到没有用户,我就直接转到主活动。但在这里,它发生在删除过程的最后,整个数据都被删除了,除了用户本身,将他们引导到主要活动,再次登录并返回删除过程是有问题的。
我还认为可能是因为我设置了 7000,用于确保在以 user.delete 结束之前删除整个数据库。
谢谢
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。