Firebase手机号认证OAuth client ID无效 单iOS14用户偶发原因排查
可能的触发原因及iOS 15 SDK兼容性说明
与iOS 15 SDK打包的关联说明
使用Xcode iOS 15 SDK编译的应用在iOS 14系统上运行触发该报错确实存在关联可能性,具体对应原因在下方排查方向中已标注。
具体根因排查方向
- 设备推送权限异常
Firebase手机号认证在iOS端依赖静默推送回调完成设备归属校验,如果该用户手动禁用了应用的推送权限,或是iOS 15 SDK编译的应用在iOS 14上出现推送权限适配漏洞,导致无法接收Firebase的验证推送,就会触发OAuth校验失败,抛出当前报错,这是单用户偶发该问题的最常见原因。 - GoogleService-Info.plist 读取异常
如果更新版本时改动了plist内的API_KEY或CLIENT_ID字段,或是Xcode使用iOS 15 SDK打包时的新资源压缩规则,导致极少数iOS 14设备读取配置文件时出现字段转义/读取失败,就会出现请求携带的OAuth客户端ID/API key不匹配的问题。 - 设备系统时间异常
如果该用户的iPhone系统时间与标准时间偏差超过5分钟,Firebase服务端的OAuth签名校验会直接失败,抛出该错误。 - VPN/代理网络干扰
如果用户当前使用跨境VPN或代理服务,Firebase服务端接收到的请求IP与API key绑定的区域限制不匹配,也会触发该类校验错误。 - 手机号格式边缘case
虽然已经做了E.164格式处理,但部分小众国家/地区的手机号格式,可能在你使用的格式化库的iOS 14适配版本中存在兼容漏洞,导致传给Firebase的号码格式非法,间接触发校验报错。 - 用户设备的Firebase缓存损坏
极少数情况下,用户设备本地存储的Firebase临时缓存数据损坏,会导致请求携带的校验参数异常,触发该报错,通常卸载重装应用即可恢复。
内容的提问来源于stack exchange,提问作者Utku Dalmaz
相关产品推荐
相关产品推荐

