使用 firebase google 身份验证轻击登录按钮始终自动登录,而无需选择以其他用户身份登录

Flutter-clicking on signin button with firebase google authentication always signs in automatically without the option to sign in as a different user

我在主页上有一个 signup/signin 和 google 按钮,然后在单击时,用户可以选择输入 google 帐户的凭据。登录后,用户将被带到一个空白页面,只有一个注销按钮,我在其中调用 await FirebaseAuth.instance.signOut();

用户单击注销按钮后,用户将返回到主页,在那里他们可以选择再次登录。

我遇到的问题是曾经使用 google 帐户登录,即使在单击退出按钮后,用户第二次单击登录按钮时,您也无法选择使用其他帐户登录google 帐户,它会自动使用您登录的第一个帐户登录。如何应对这种情况?

我试过用这种方式清除用户点击注销时运行的缓存,但此时它抛出错误。

  Future<bool> signOut() async {
    await FirebaseAuth.instance.signOut();
    await FirebaseFirestore.instance.terminate();
    await FirebaseFirestore.instance.clearPersistence();
    return true;
  }

此外,我没有使用任何 firebase 云 firestore 功能,我只是将其用于清除 cache.Is 有什么方法可以在不使用云 firestore 的情况下实现这一目标?

您需要从您的 Firebase 项目中删除该用户。尝试:

FirebaseAuth.instance.currentUser.delete();

然后您可以通过在“身份验证”->“用户”下查看 Firebase 项目中的条目来手动检查它们是否已被删除。

您可以在退出前尝试 disconnect 帐户:

GoogleSignIn _googleSignIn = GoogleSignIn();
await _googleSignIn.disconnect();
await FirebaseAuth.instance.signOut();

我假设您正在使用 google_sign_in 插件。