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

使用Firebase Auth的Google One Tap登录抛出GetCredentialException异常求助

问题排查与解决方案

1. 修复协程执行顺序问题

你的signIn()方法中,showLoading(false)直接写在协程代码块外,会导致登录请求还在处理时就提前关闭加载状态,虽不直接触发取消异常,但可能干扰流程逻辑。将其移至try-catch的finally块,确保无论登录成功或失败都能正确处理加载状态:

private fun signIn() {
    val credentialManager = CredentialManager.create(this)
    val googleIdOption = GetSignInWithGoogleOption.Builder(BuildConfig.WEB_CLIENT_ID)
        .build()
    val request = GetCredentialRequest.Builder()
        .addCredentialOption(googleIdOption)
        .build()

    lifecycleScope.launch {
        try {
            val result: GetCredentialResponse = credentialManager.getCredential(
                request = request,
                context = this@LoginActivity,
            )
            handleSignIn(result)
        } catch (e: GetCredentialException) {
            Log.d("Error", e.message.toString())
        } finally {
            showLoading(false) // 移至finally块保证执行时机
        }
    }
}

2. 移除干扰性Window Flag

你在onCreate中设置的FLAG_LAYOUT_NO_LIMITS会让Activity布局忽略系统栏限制,可能导致Google One Tap弹窗无法正确识别Activity生命周期状态,进而误判为用户取消操作。尝试注释或删除这段代码:

// 注释或删除以下两行
// window.setFlags(
//     WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
//     WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
// )

3. 对比新项目配置找差异

由于新项目能正常运行,重点核对以下配置项:

  • SHA-1指纹:确保当前项目在Firebase控制台添加了正确的调试/发布环境SHA-1指纹,Google One Tap依赖该信息验证应用身份。
  • Web Client ID:确认BuildConfig.WEB_CLIENT_ID与新项目一致,且是Firebase控制台中配置的Web类型Client ID,不要混用Android Client ID。
  • 依赖版本:保持当前项目的CredentialManager、Firebase Auth等依赖版本与新项目一致,示例依赖如下:
    implementation "androidx.credentials:credentials:1.2.2"
    implementation "androidx.credentials:credentials-play-services-auth:1.2.2"
    implementation "com.google.firebase:firebase-auth:22.3.1"
    
  • Activity启动模式:检查LoginActivity的launchMode是否为standard(默认值),避免使用singleInstance或singleTask这类可能干扰弹窗生命周期的模式。

4. 清除本地缓存数据

本地缓存的账号信息或应用状态异常可能触发该问题,尝试:

  • 清除当前应用的缓存和存储数据
  • 在系统设置中移除Google账号后重新添加,再测试登录流程

内容的提问来源于stack exchange,提问作者Wisnu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:15:18