Ionic 5 React接入Firebase手机号认证iOS端报auth/internal-error
Firebase iOS 手机号认证
auth/internal-error 错误解决方案 - 确认
GoogleService-Info.plist配置有效性- 检查文件是否加入Xcode项目的 Build Phases > Copy Bundle Resources 列表,仅导入文件引用但未打包进应用资源包会导致Firebase无法读取配置
- 核对文件内
BUNDLE_ID字段与Xcode项目配置的Bundle ID完全一致,大小写、特殊字符不能有偏差 - 确认Firebase控制台的电话号码登录功能已开启,且未对iOS端包名设置访问限制
- 适配iOS端reCAPTCHA验证流程
- 在Xcode项目的
Info.plist中添加自定义URL Scheme,值为GoogleService-Info.plist文件内的REVERSED_CLIENT_ID字段内容,否则reCAPTCHA验证完成后无法跳转回应用,会直接触发内部错误 - 确认
recaptchaVerifier实例是在应用前台、视图已完成挂载的状态下初始化,后台状态或未就绪的视图上下文会导致验证器初始化失效
- 在Xcode项目的
- 代码逻辑优化
显式给Auth实例绑定Firebase App对象,避免跨端默认实例读取异常,同时添加完整错误日志打印定位问题:
import { initializeApp } from "firebase/app"; import { getAuth, signInWithPhoneNumber } from "firebase/auth"; // 保留App实例引用 const firebaseApp = initializeApp(firebaseConfig); // 显式传入App实例初始化Auth const auth = getAuth(firebaseApp); signInWithPhoneNumber( auth, formatPhoneNumberFirebase(phoneNumber), recaptchaVerifier ) .then((confirm) => { confirmationResult = confirm; resolve(); }) .catch((error) => { // 打印错误完整字段定位根因 console.error("错误详情:", error.code, error.message, error.customData); });
- 额外配置检查
Firebase iOS端手机号认证会优先通过静默APNs推送验证设备真实性,APNs配置错误也会触发该报错:- 在Xcode项目的 Signing & Capabilities 中开启
Push Notifications与Background Modes > Remote notifications权限 - 在Firebase控制台iOS项目设置页上传正确的APNs认证密钥或推送证书
- 在Xcode项目的 Signing & Capabilities 中开启
内容的提问来源于stack exchange,提问作者Jordan Azoulay
相关产品推荐
相关产品推荐

