使用 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 插件。
我在主页上有一个 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 插件。