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

启用Firebase SmartLock保存凭据出错,咨询项目指纹配置位置

Firebase Auth启用SmartLock时「Error when saving credential」错误解决

我开发的Android应用使用Firebase认证,核心代码如下:

Intent signInIntent = AuthUI.getInstance()
        .createSignInIntentBuilder()
        .setAvailableProviders(providers)
        //.setIsSmartLockEnabled(false)
        .build();
signInLauncher.launch(signInIntent);

禁用SmartLock时功能正常,但启用后抛出「Error when saving credential」错误,报错堆栈如下:

com.firebase.ui.auth.FirebaseUiException: Error when saving credential.
at com.firebase.ui.auth.viewmodel.smartlock.SmartLockHandler.lambda$saveCredentials$0$com-firebase-ui-auth-viewmodel-smartlock-SmartLockHandler(SmartLockHandler.java:97)
at com.firebase.ui.auth.viewmodel.smartlock.SmartLockHandler$$ExternalSyntheticLambda0.onComplete(Unknown Source:2)
at com.google.android.gms.tasks.zzi.run(com.google.android.gms:play-services-tasks@@18.0.2:1)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
Caused by: com.google.android.gms.common.api.ApiException: 16: Cannot find an eligible account.
at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@18.0.1:3)
at com.google.android.gms.common.internal.zap.onComplete(com.google.android.gms:play-services-base@@18.0.1:4)
at com.google.android.gms.common.api.internal.BasePendingResult.zab(com.google.android.gms:play-services-base@@18.0.1:7)
at com.google.android.gms.common.api.internal.BasePendingResult.setResult(com.google.android.gms:play-services-base@@18.0.1:6)
at com.google.android.gms.internal.auth-api.zbm.setResult(com.google.android.gms:play-services-auth@@20.3.0:1)
at com.google.android.gms.internal.auth-api.zbk.zbc(com.google.android.gms:play-services-auth@@20.3.0:1)
at com.google.android.gms.internal.auth-api.zbr.zba(com.google.android.gms:play-services-auth@@20.3.0:7)
at com.google.android.gms.internal.auth-api.zbb.onTransact(com.google.android.gms:play-services-auth@@20.3.0:3)
at android.os.Binder.execTransactInternal(Binder.java:1154)
at android.os.Binder.execTransact(Binder.java:1123)

推测问题与应用签名指纹有关,已在Firebase项目控制台生成指纹,但不清楚项目中何处配置。


解决步骤

  • 确认指纹类型:确保你在Firebase控制台添加的是应用签名证书的SHA-1指纹,调试版和发布版指纹都需要分别添加(如果用调试包测试,必须添加调试指纹)。
  • 更新项目配置文件:
    在Firebase控制台添加完指纹后,重新下载项目对应的google-services.json文件,替换Android项目根目录下的同名文件即可。Firebase会自动把指纹信息写入这个配置文件。
  • 验证签名配置:
    如果你手动管理签名,需确保app/build.gradle中的签名配置与Firebase控制台添加的指纹一致:
    signingConfigs {
        release {
            storeFile file("your-keystore-path.jks")
            storePassword "your-store-password"
            keyAlias "your-key-alias"
            keyPassword "your-key-password"
        }
        debug {
            storeFile file(System.getProperty("user.home") + "/.android/debug.keystore")
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }
    }
    buildTypes {
        release {
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.debug
        }
    }
    
  • 检查依赖版本:确保Firebase Auth和FirebaseUI Auth的依赖版本匹配,避免版本冲突:
    implementation 'com.google.firebase:firebase-auth:22.0.0'
    implementation 'com.firebaseui:firebase-ui-auth:8.0.2'
    
  • 清理重建项目:执行./gradlew clean build命令,或在Android Studio中点击Build -> Clean Project,再Rebuild Project,确保配置生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 23:25:31