问题描述
我开发了一个 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 (将#修改为@)