【问题标题】:How to log out of Google after app data has been cleared?清除应用数据后如何退出谷歌?
【发布时间】:2019-09-13 09:03:46
【问题描述】:

所以我在我的应用中使用 FirebaseUI Auth 来提供来自 Google 和 Facebook 的登录信息。我已经设置了标准SharedPreferences 来检查应用数据是否已被清除,如果已清除,请注销 Firebase 和提供程序(按照文档中的说明)。退出 Facebook 非常简单:-

LoginManager.getInstance().logOut();

现在谷歌的做法是:-

Auth.GoogleSignInApi.signOut(mGoogleApiClient);

这段代码的问题是我不知道从哪里得到mGoogleApiClientGoogleSignInClient 对象。由于数据已清除,我无法在创建构建器时使用 SharedPreferences 保存它。

感谢任何帮助,谢谢!

【问题讨论】:

    标签: java android firebase firebase-authentication firebaseui


    【解决方案1】:
    if (googleApiClient.isConnected())
       Auth.GoogleSignInApi.signOut(googleApiClient);
    
     //where googleApiClient is object of GoogleApiClient.
    

    【讨论】:

    • 我的错误,我更新了问题。我仍然不知道我从哪里得到这个对象。
    • 无需退出谷歌,所有登录凭据和第三方sdk的数据在您清除数据或卸载应用程序后都会被删除..
    • 你确定吗,因为如果是这样的话,那是一个巨大的解脱。
    • 是的?,你可以试试。从谷歌登录,清除数据然后查看应用程序是否强制您登录然后我的答案是正确的
    【解决方案2】:

    试试下面的代码

    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                        .requestIdToken(getResources().getString(R.string.google_client_id))
                        .requestEmail()
                        .build();
                mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
    
    Intent signInIntent = mGoogleSignInClient.getSignInIntent();
            startActivityForResult(signInIntent, RC_SIGN_IN);
    

    为了退出使用下面的代码

    mGoogleSignInClient.signOut();
    

    【讨论】:

      【解决方案3】:

      只需将此行添加到您要在应用中注销的位置即可。

      FirebaseAuth.getInstance().signOut();

      【讨论】:

      • 我想退出提供程序,而不仅仅是 Firebase。
      • implementation 'com.google.android.gms:play-services-auth:16.0.1' //将此添加到您的 gradle 依赖项中,然后创建“private GoogleSignInClient mGoogleSignInClient;”的实例在你的 java 文件中。
      • mGoogleSignInClient.signOut() // 最终结果使用 this.
      猜你喜欢
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 2016-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多