当前位置: 首页 > 知识库问答 >
问题:

Java,Android,Firebase身份验证登录抛出NullPointerException

慕容雅珺
2023-03-14

我有一个电子邮件/密码firebase认证的应用程序。

它从登录活动开始

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_login);
    mAuth = FirebaseAuth.getInstance();
    ...

然后在我的onStart中,我检查当前用户是否为空,然后它导航到我的主要活动。这部分工作得非常好。

@Override
public void onStart() {
    super.onStart();
    FirebaseUser currentUser = mAuth.getCurrentUser();
    if (currentUser != null) {
        goMain();
    }
}

问题来了,在主活动中我有一个按钮,在这里我从LoginActivity.java调用signout函数:

public void logOut() {
    LoginActivity login = new LoginActivity();
    login.logMeOut();
}


public void logMeOut() {
    FirebaseUser user = mAuth.getCurrentUser();
    if(user!=null) {
        mAuth.signOut();
        Intent intent = new Intent(this, LoginActivity.class);
        startActivity(intent);
    }
}

问题是当logMeOut运行时,我得到了这种美

java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“com . Google . firebase . auth . firebase user com . Google . firebase . auth . firebase auth . getcurrentuser()”

我已经尝试将< code > mAuth = firebase auth . getinstance()添加到logMeOut函数的开头,但仍然没有解决我的问题。

如果我只调用< code>mAuth.signOut(),而没有调用FirebaseUser部分,我会得到同样的错误。

共有1个答案

刁星渊
2023-03-14

您在注销方法中创建了一个新的登录活动,这会是一个问题吗?

在我看来,Auth对象将在那里重新初始化。我的注销方式与您完全相同,但它在菜单中的主活动中

 case R.id.sign_out_menu:
            mFirebaseAuth.signOut();
            Auth.GoogleSignInApi.signOut(mGoogleApiClient);
 类似资料:
  • 使用,https://github.com/firebase/FirebaseUI-Android/tree/master/codelabs/chat作为登录的参考,我在键入时似乎遇到了问题 我只能键入Auth的提供者,而不能键入,为什么会这样,它提示我键入社会提供者。

  • 当使用Firebase身份验证匿名帐户时,它偶尔会在系统中创建一个新的用户ID,有时它会使用相同的用户ID。我真的希望每次都能创建相同的用户ID,这样匿名用户仍然可以在应用程序中维护相同的进度/数据。这实际上是我开始使用Firebase的原因。即使在重新启动应用程序等之后,我如何始终维护一个匿名帐户来保持相同的用户ID? 我希望用户每次以访客身份玩游戏时都能获得相同的ID。我看到有些应用程序在卸载

  • 本文向大家介绍firebase-authentication Google Plus登录身份验证,包括了firebase-authentication Google Plus登录身份验证的使用技巧和注意事项,需要的朋友参考一下 示例 使用Plus登录验证用户 onCreate onStart() 获取资料信息 使用Firebase进行身份验证, onActivityResult 登出      

  • 大家好,我对FireBase创建用户和注册用户有问题。下面是注册和登录的代码。我得到空指针异常,无法理解原因。。初始化完成了,但经过了这么多天的努力,还是弄不明白。 注册: 正在发布注册活动的日志错误: java.lang.com.google.android.gms.internal.zzdvv.zzb(未知来源)在com.google.android.gms.internal.zzdwc.zz

  • 该应用程序应该接受用户电子邮件和密码,并使用Firebase身份验证作为后端。我使用像素2作为模拟器。每次应用程序处理登录功能时,它都会崩溃。 下面是Java文件和gradle文件 Java文件:

  • 我已经在我的xamarin Android应用程序中实现了脸书认证,一切都很好。我从facebook获得令牌,并使用firebase rest Api的sigin方法,我能够sigin到firebase,并从firebase Api收到一个访问令牌,作为JWT。但是,当我想在我的Web Api核心上使用这个访问令牌时,它总是返回not authenticated。我的Web Api核心使用下面基于