【问题标题】:Firebase logout is not workingFirebase 注销不起作用
【发布时间】:2017-08-07 17:20:15
【问题描述】:

我已经开始使用 Firebase,但我的体验很糟糕。

我无法退出用户。

我尝试了不同的方法,花了 4 天时间来弄清楚如何退出用户,但没有明确的选项。

我想完全删除用户,以便他们可以选择另一个 gmail 帐户。

我试过下面的代码:

FirebaseUser user = firebaseAuth.getCurrentUser();
user.unlink(user.getProviderId()); FirebaseAuth.getInstance().signOut();

内部

mAuth = FirebaseAuth.getInstance();//mAuth.signOut();
        //auth fail olarsa mAuth.signOut(); sil sonra yerne qoy
        mAuthListener = new FirebaseAuth.AuthStateListener() {
            @Override
            public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {

我也试过这个:Properly log out a user from android app

【问题讨论】:

标签: android authentication firebase firebase-authentication


【解决方案1】:

如果您查看 Firebase Auth Quickstart 示例代码,则 Google 提供商的退出包括这些步骤。

您在退出时是否致电Auth.GoogleSignInApi.signOut()?所以,请使用这个代码:

private void signOut() {
    // Firebase sign out
    mAuth.signOut();

    // Google sign out
    Auth.GoogleSignInApi.signOut(mGoogleApiClient).setResultCallback(
        new ResultCallback<Status>() {
            @Override
            public void onResult(@NonNull Status status) {
                //do what you want
            }
        });
}

【讨论】:

  • Google 登录的当前文档状态为 To sign out a user, call signOut: FirebaseAuth.getInstance().signOut();firebase.google.com/docs/auth/android/google-signin
  • java.lang.NullPointerException: Attempt to call virtual method 'android.content.Context com.google.android.gms.common.api.GoogleApiClient.getContext() 它给出了错误,我已经尝试过了之前
  • @user3175580 这还不够,因为用户无法使用其他帐户登录
  • @AlexAlex 但仅使用这种方法,我可以在登录活动中单击 Google 按钮后再次查看电子邮件列表。您的 firebase 身份验证依赖项是什么版本?
  • 编译 'com.google.android.gms:play-services:11.0.4' 编译 'com.google.firebase:firebase-database:11.0.4' 编译 'com.google.firebase: firebase-auth:11.0.4' 编译 'com.google.android.gms:play-services-auth:11.0.4' i
【解决方案2】:

您使用的版本比我新,我怀疑他们引入了新错误。您之前提到了NullPointerException,所以我建议您确保您传递给Auth.GoogleSignInApi.getSignInIntent 的GoogleApiClient 不为空。

【讨论】:

  • 是的,我也试过了,没有连接错误,然后我试图把它放到按钮点击监听器上,这样它就有时间连接了,它成功了!!!!!!!!!
【解决方案3】:

我也有这个问题,现在LogoutBtn在抽屉里,像这样:

case R.id.initiates_logout:
            if(FirebaseAuth.getInstance().getCurrentUser()!=null){
                new AlertDialog.Builder(this)
                        .setTitle("Text1")
                        .setMessage("Text2")
                        .setIcon(android.R.drawable.ic_dialog_alert)
                        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog, int whichButton) {
                                FirebaseAuth.getInstance().signOut();
                                LoginManager.getInstance().logOut();


                            }})
                        .setNegativeButton(android.R.string.no, null).show();
            }
            break;

注销后我无法选择其他帐户。

【讨论】:

  • 虽然您确实将其作为您自己的问题开始 - 这里应该是评论而不是答案
猜你喜欢
  • 2016-08-25
  • 2016-05-14
  • 2020-08-09
  • 2017-01-07
  • 2012-06-19
  • 2018-06-09
  • 2012-12-10
  • 1970-01-01
相关资源
最近更新 更多