跨机器调试Flutter+firebase_auth应用遇INVALID_CERT_HASH错误求助
关于Firebase Auth调试环境SHA密钥的问题解答
问题原因
这个错误并非预期行为,核心原因是Android调试版APK的签名哈希不匹配:
- 每台开发机器的默认
debug keystore是独立生成的,对应的SHA-1/SHA-256哈希值各不相同 - 你之前在Firebase控制台添加的是旧机器的调试签名哈希,新机器使用自身的
debug keystore签名后,哈希值与Firebase后台记录不匹配,触发INVALID_CERT_HASH 400错误
解决方案
1. 为新机器添加对应的调试SHA密钥
是的,需要将新机器的调试签名SHA-1和SHA-256密钥添加到Firebase控制台:
- 在新机器终端执行命令生成哈希:
Windows系统路径替换为keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass androidC:\Users\<你的用户名>\.android\debug.keystore - 复制输出中的SHA-1和SHA-256值,打开Firebase控制台 -> 项目设置 -> 对应Android应用 -> 签名证书指纹,添加新的指纹条目
- 无需重新下载
google-services.json,Firebase会自动同步配置,重启应用即可生效
2. 团队开发优化方案
如果是多人协作开发,建议共享统一的debug keystore文件:
- 将旧机器的
~/.android/debug.keystore文件复制到所有开发机器的同路径下 - 这样所有开发环境使用同一签名密钥,只需要在Firebase控制台添加一次SHA哈希即可
附错误日志
D/EGL_emulation(22226): app_time_stats: avg=3526.14ms min=22.24ms max=13948.25ms count=4 W/System (22226): Ignoring header X-Firebase-Locale because its value was null. E/FirebaseAuth(22226): [GetAuthDomainTask] Error getting project config. Failed with INVALID_CERT_HASH 400 D/EGL_emulation(22226): app_time_stats: avg=104.52ms min=6.82ms max=4039.29ms count=47
附环境信息
[✓] Flutter (Channel stable, 3.10.1, on macOS 13.3.1 22E772610a darwin-arm64, locale en-IN) • Flutter version 3.10.1 on channel stable at /Users/USER_NAME/fvm/versions/3.10.1 • Upstream repository https://github.com/flutter/flutter.git • Framework revision d3d8effc68 (5 days ago), 2023-05-16 17:59:05 -0700 • Engine revision b4fb11214d • Dart version 3.0.1 • DevTools version 2.23.1 [✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1) • Android SDK at /Users/USER_NAME/Library/Android/sdk • Platform android-33, build-tools 32.1.0-rc1 • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301) • All Android licenses accepted. [✓] Xcode - develop for iOS and macOS (Xcode 14.3) • Xcode at /Applications/Xcode.app/Contents/Developer • Build 14E222b • CocoaPods version 1.11.3 [✓] Chrome - develop for the web • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome [✓] Android Studio (version 2022.1) • Android Studio at /Applications/Android Studio.app/Contents • Flutter plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/9212-flutter • Dart plugin can be installed from: 🔨 https://plugins.jetbrains.com/plugin/6351-dart • Java version OpenJDK Runtime Environment (build 11.0.15+0-b2043.56-8887301) [✓] VS Code (version 1.78.2) • VS Code at /Applications/Visual Studio Code.app/Contents • Flutter extension version 3.64.0 [✓] Connected device (3 available) • sdk gphone64 arm64 (mobile) • emulator-5554 • android-arm64 • Android 12 (API 32) (emulator) • macOS (desktop) • macos • darwin-arm64 • macOS 13.3.1 22E772610a darwin-arm64 • Chrome (web) • chrome • web-javascript • Google Chrome 113.0.5672.126 [✓] Network resources • All expected network resources are available. • No issues found!
内容的提问来源于stack exchange,提问作者randy
相关产品推荐
相关产品推荐

