Firebase手机号认证出现DEVELOPMENT_MODE_MISMATCH异常求助
解决Firebase手机号认证正式版的
DEVELOPMENT_MODE_MISMATCH异常 这个异常DEVELOPMENT_MODE_MISMATCH:Non-development mode Verification Proof given in development mode request本质是你的正式版APK签名和Firebase控制台中配置的签名不匹配,导致Firebase把正式版的验证请求误判为开发模式请求,从而拒绝处理。
调试模式正常是因为你开发时用的是Android Studio默认的调试签名,这个签名已经配置在Firebase里了,但正式版用的是你自己的发布签名,Firebase还未识别到它。
下面是一步步的解决方法:
1. 获取正式版APK的签名指纹
你需要拿到正式版签名密钥的SHA-1和SHA-256值:
- 如果你用Android Studio生成签名APK/Bundle,可以在生成过程中查看指纹;或者用JDK自带的
keytool命令:
keytool -list -v -keystore 你的发布密钥库路径.jks -alias 你的密钥别名
执行后会输出签名指纹,复制SHA-1和SHA-256的值。
2. 将正式版指纹添加到Firebase控制台
- 打开你的Firebase项目,进入Project Settings → 找到你的Android应用
- 在「Signing certificate fingerprints」区域,点击「Add fingerprint」,把刚才复制的SHA-1和SHA-256分别添加进去
- 点击保存,确保更改生效
3. 更新项目中的google-services.json
- 在Firebase控制台的Android应用设置页面,下载最新的
google-services.json文件 - 替换你Android项目中
app/目录下的旧文件,然后点击Android Studio右上角的「Sync Now」同步项目
4. 特殊情况:使用Google Play App Signing
如果你发布到Google Play时开启了Google Play App Signing,那么Google Play会替换你的APK签名,这时候你需要:
- 登录Google Play Console,进入你的应用 → Release → Setup → App signing
- 复制「App signing certificate」下的SHA-1和SHA-256值,同样添加到Firebase控制台的签名指纹中
最后再确认你的正式版APK确实是用你配置的发布密钥打包的,重新构建正式版后,手机号认证功能就应该正常工作了——你的代码本身没有问题,问题全在签名配置的匹配上。
内容的提问来源于stack exchange,提问作者Enaam Riyadh
相关产品推荐
相关产品推荐

