Firebase Auth签名APK无法发送OTP 请求技术协助
我完全懂你临近交付却卡壳的焦虑!之前也碰到过一模一样的调试签名APK Firebase认证失效的问题,给你梳理几个容易忽略的关键点,应该能快速解决:
确认调试签名的SHA指纹完全匹配Firebase配置
别只依赖Android Studio助手自动生成的SHA值,手动用keytool命令提取调试keystore的真实指纹才靠谱:# Mac/Linux keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android # Windows keytool -list -v -keystore C:\Users\<你的用户名>\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android把输出的SHA-1和SHA-256逐字符对比Firebase控制台「项目设置」→「你的应用」→「SHA证书指纹」里的所有条目,确保没有遗漏或输入错误。
检查Gradle签名配置是否正确绑定调试变体
打开app模块的build.gradle(或build.gradle.kts),确认debug构建类型的签名配置指向了正确的调试keystore:signingConfigs { debug { storeFile file(System.getProperty("user.home") + "/.android/debug.keystore") storePassword "android" keyAlias "androiddebugkey" keyPassword "android" } } buildTypes { debug { signingConfig signingConfigs.debug // 其他调试配置... } }有时候Android Studio会自动生成临时调试签名,导致APK用的keystore和你在Firebase配置的不是同一个,手动指定签名配置能避免这个问题。
重新下载并替换google-services.json
每次修改Firebase的SHA指纹后,一定要重新下载最新的google-services.json文件,替换app模块根目录下的旧文件,然后执行Clean Project→Rebuild Project再生成APK。旧的json文件里没有新添加的指纹,会直接导致认证失败,这一步很多人容易忘!验证APK的实际签名指纹
用Android SDK自带的apksigner工具检查生成的APK的真实签名:apksigner verify --print-certs <你的调试签名APK路径>把输出的SHA指纹和Firebase里的配置对比,确保完全一致——这能直接确认APK是不是用了正确的签名。
检查Firebase电话认证的基础设置
去Firebase控制台「Authentication」→「登录方法」→「电话」,确认:- 电话认证已经启用
- 没有误设置号码白名单/黑名单(比如只允许特定测试号码)
- 地区限制没有排除你测试的号码归属地
按上面的步骤逐一排查,应该能快速解决OTP发送失败的问题,顺利交付给客户!
内容的提问来源于stack exchange,提问作者Amol Borkar




