我尝试退出

时间:2018-01-28 18:21:00

标签: java android firebase

我正在使用谷歌登录开发应用程序和用户身份验证。 登录是完美的,但如果我使用

mAuth.signOut();

这标志着我退出了firebase,而不是来自Google帐户。当我尝试登录时,使用之前使用过的帐户登录,我无法选择帐户。 我按照谷歌文档注销用户和断开帐户。 我的按钮代码:

btnlogout.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
                 signOut();
             }
         });    

我的签名代码

private void signOut() {
        mGoogleSignInClient.signOut()
                .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        startActivity(new Intent(TempActivity.this,MainActivity.class));


                    }
                });
    }

按钮位于onCreate内。当我按下注销按钮时,我的应用程序崩溃了。有任何想法吗?当我调用signout,java.lang.NullPointerException

时出错

1 个答案:

答案 0 :(得分:0)

您需要确保引用相同的GoogleSignInClient对象。在我看来,您正在使用另一个GoogleSignInClient对象来处理尚未初始化的注销,从而导致nullpointer异常。

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .build();

mGoogleSignInClient = GoogleSignIn.getClient(this, gso);

然后,您需要在处理注销的类中使用与mGoogleSignInClient相同的引用。