我正在使用谷歌登录开发应用程序和用户身份验证。 登录是完美的,但如果我使用
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
时出错答案 0 :(得分:0)
您需要确保引用相同的GoogleSignInClient
对象。在我看来,您正在使用另一个GoogleSignInClient
对象来处理尚未初始化的注销,从而导致nullpointer异常。
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.build();
mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
然后,您需要在处理注销的类中使用与mGoogleSignInClient
相同的引用。