微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Firebause getCurrentUser().getEmail 返回 null

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?