Firebase Google 身份验证,退出并再次登录将使用上次登录的帐户登录

Posted

技术标签:

【中文标题】Firebase Google 身份验证,退出并再次登录将使用上次登录的帐户登录【英文标题】:Firebase Google auth, signing out and logging in again will log in with the last signed account 【发布时间】:2022-01-03 03:14:51 【问题描述】:

我正在使用 。如何让它显示“选择帐户”对话框? 这就是我注销的方法。 FirebaseAuth.getInstance().signOut(); 然后我调用登录活动。 此外,注销按钮处于不同的活动中。

【问题讨论】:

【参考方案1】:

这就是我注销的原因。

FirebaseAuth.getInstance().signOut();

当您尝试使用上述代码行退出时,基本上意味着您从 Firebase 退出

我正在使用 Firebase Google 身份验证,退出并再次登录将使用上次登录的帐户登录。如何让它显示“选择帐户”对话框?

如我所见,您正在使用 Google 身份验证。退出 Firebase 并不意味着您会自动退出 Google。它没有。要退出 Google,您必须明确添加对 GoogleSignInClient#signOut() 方法的调用,如下所示:

googleSignInClient.signOut();

请不要忘记退出操作是异步,这意味着您必须等到操作完成,这可能需要一些时间。由于此方法返回Task 类型的对象,因此您可以使用addOnCompleteListener(OnCompleteListener listener) 方法来了解您何时完全退出。

【讨论】:

有效!但是您知道如果注销按钮与 mGoogleSignInClient 的活动不同,我该如何制作此代码。(我问这个问题是因为当我将 mGoogleSignInClient 设为静态以便能够从其他活动中访问它时,代码不起作用) 您应该将该对象传递给所需的活动,或者直接在那里创建它。或者为什么不直接使用Hilt注入。

以上是关于Firebase Google 身份验证,退出并再次登录将使用上次登录的帐户登录的主要内容,如果未能解决你的问题,请参考以下文章

使用 Firebase 身份验证和谷歌登录时注销时“GoogleApiClient 尚未连接”

使用 Firebase 身份验证进行身份验证后检索 Google 访问令牌

在 Firebase 中使用 Google 身份验证未收到电子邮件

使用 google 登录可防止用户使用其他帐户再次登录 - iOS

将 Google 身份验证令牌与 Firebase 一起使用

Firebase Google 用户未在 Firebase 控制台身份验证中显示