FlutterFlow中Firebase手机号认证非测试号收不到OTP报错咨询
Firebase手机号认证非测试号无法接收OTP的问题解决
不需要上架Google Play就能让非测试号正常接收OTP,你遇到的报错并非该功能的正常表现,核心是配置环节存在遗漏,以下是具体排查方向:
1. 核对Firebase应用配置
- 确认Android应用的SHA-1、SHA-256指纹完全正确:包括debug版本(本地调试用)和release版本的指纹,都要添加到Firebase控制台的对应应用中,指纹错误会直接导致校验失败
- 检查Firebase里的应用包名与FlutterFlow中设置的包名完全一致,包名大小写、前缀后缀都不能有差异
2. 完善Google Play Integrity API配置
- 前往Google Cloud控制台,给Firebase项目关联的服务账号授予「Play Integrity API Client」权限
- 再次确认Play Integrity API已在Google Cloud控制台启用(不是仅在Firebase后台开启开关)
3. 确保reCAPTCHA fallback机制生效
- 你的报错说明SafetyNet/Play Integrity校验失败后,reCAPTCHA fallback也未触发,需检查:
- Firebase控制台已开启手机号认证的reCAPTCHA验证选项
- FlutterFlow的手机号认证组件配置中,已启用reCAPTCHA相关设置
- 必须使用真实物理设备测试,模拟器无法正常触发reCAPTCHA验证流程
4. 验证测试包的签名一致性
- 若使用release包测试,必须用你配置了SHA指纹的密钥签名生成APK/AAB,不能用FlutterFlow的临时测试包(临时包签名与你配置的指纹不匹配)
- 本地调试时,确保使用的debug包签名对应的SHA指纹已添加到Firebase
补充:测试号能正常接收OTP是因为Firebase对测试号码默认跳过SafetyNet/Play Integrity校验,所以非测试号的问题本质是配置导致的校验失败,和应用是否上架Google Play无关。
内容的提问来源于stack exchange,提问作者Abdullah Qureshi
相关产品推荐
相关产品推荐

