You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter集成Firebase时Google账号登出失败问题求助

Flutter Firebase Google账号登出失效问题解决

你的问题出在Google账号登出时仅调用了GoogleSignIn.signOut(),未同步清除Firebase Auth的用户会话。Google登录后,Firebase Auth会保留独立的认证状态,只登出GoogleSignIn无法彻底清除Firebase侧的用户信息,导致视觉上登出未生效。

修正后的代码需要同时触发两者的登出操作:

try {
  switch (user.providerData[0].providerId) {
    case 'password':
      await FirebaseAuth.instance.signOut();
      break;
    case 'google.com':
      final GoogleSignIn googleSignIn = GoogleSignIn();
      await googleSignIn.signOut();
      // 同步清除Firebase Auth的用户会话
      await FirebaseAuth.instance.signOut();
      break;
  }
} on FirebaseAuthException catch (e) {
  showAuthException(e, context);
}

另外建议全局复用同一个GoogleSignIn实例,避免每次创建新实例引发的状态不同步问题:

// 在全局或项目初始化位置声明
final GoogleSignIn googleSignIn = GoogleSignIn();

// 登录流程使用该实例
final GoogleSignInAccount? googleUser = await googleSignIn.signIn();
// ...后续Firebase认证逻辑

// 登出流程同样使用该实例
await googleSignIn.signOut();
await FirebaseAuth.instance.signOut();

内容的提问来源于stack exchange,提问作者José Ignacio Duque

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 22:35:48