构建APK后Firebase手机号认证失效问题求助
解决Expo EAS构建后Firebase手机号认证reCAPTCHA失效问题
核心排查与修复步骤
1. 补充EAS构建专属的签名指纹
开发环境使用本地调试签名,EAS构建用的是Expo托管的签名密钥,二者指纹不同,必须将EAS生成的指纹添加到Firebase项目:
- 运行
eas credentials获取当前构建对应的Android SHA-1/SHA-256、iOS团队ID关联的签名指纹 - 登录Firebase控制台,进入项目设置→应用→对应平台,添加获取到的指纹,保存后重新触发构建
2. 关闭测试模式并检查reCAPTCHA配置
- 确认代码中已关闭测试模式:
firebase.auth().settings.appVerificationDisabledForTesting = false(生产环境必须禁用测试模式) - 进入Firebase控制台认证→登录方法→手机号,检查reCAPTCHA验证已启用,且允许当前应用的包名(Android)/Team ID(iOS)访问
3. 确保Firebase配置文件在构建时正确注入
- Android:确认
google-services.json放置在android/app/目录,且android/build.gradle、app/build.gradle已正确配置Google Services插件 - iOS:确认
GoogleService-Info.plist已添加到Xcode项目目标,或通过expo prebuild完成配置同步 - 运行
eas build:configure重新同步构建配置,避免构建时遗漏Firebase文件
4. 检查网络权限配置
- Android:确保
AndroidManifest.xml包含互联网权限:<uses-permission android:name="android.permission.INTERNET" /> - iOS:检查
Info.plist未限制HTTPS请求(默认允许,若有自定义ATS规则需确保兼容reCAPTCHA域名)
5. 排查版本兼容性
- 确认
@react-native-firebase/app和@react-native-firebase/auth版本与当前Expo SDK兼容,避免版本冲突 - 尝试更新到最新兼容版本:
npm install @react-native-firebase/app@latest @react-native-firebase/auth@latest
验证流程
完成配置后执行:
- 清理构建缓存:
eas build --clear-cache - 重新构建:
eas build --platform android/ios - 安装构建包测试手机号认证流程
内容的提问来源于stack exchange,提问作者naDan
相关产品推荐
相关产品推荐

