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

Flutter使用google sign_in登录,选账号后白屏无响应问题

Flutter谷歌登录空白加载页残留问题修复方案

核心问题原因

  • 现有代码混用async/await和.then()回调,没有做空值判断和异常捕获,登录过程中出现空异常或流程中断时,没有主动关闭谷歌登录的Web视图,导致页面残留
  • 没有处理用户取消登录的场景,当用户中途退出登录流程时,signIn()返回值为null,直接调用data.authHeaders会触发崩溃,导致视图无法正常销毁

修复后代码

import 'package:google_sign_in/google_sign_in.dart';

void sendingTestEmail() async {
  try {
    final GoogleSignInAccount? signInAccount = await googleSignIn.signIn();
    // 处理用户取消登录的情况
    if (signInAccount == null) {
      return;
    }
    // 正常获取鉴权头
    final Map<String, String> authHeaders = await signInAccount.authHeaders;
    // 此处添加你自己的业务逻辑,比如接口请求、页面跳转等
  } catch (err) {
    // 捕获所有登录异常,避免流程卡死
    print("谷歌登录异常: $err");
    // 异常时主动退出登录,清理残留视图
    await googleSignIn.signOut();
  }
}

额外排查项

如果修改代码后问题仍然存在,按以下顺序排查:

  • 确认安卓端google-services.json、iOS端GoogleService-Info.plist配置文件放置路径正确,对应包名、签名证书SHA1值和谷歌云控制台配置完全一致
  • 确认谷歌云控制台的OAuth同意屏幕已经完成发布,测试阶段仅允许列表内的测试账号登录,非测试账号登录会卡在验证页
  • 升级google_sign_in依赖到官方最新稳定版本,避免版本兼容问题

内容的提问来源于stack exchange,提问作者Jaczura Zoltán

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 13:48:02