You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firebase Spark计划是否支持电话认证?React Native认证报错求助

React Native Firebase电话认证出现[auth/internal-error]错误排查

我基于React Native开发的移动应用,之前电话认证功能正常,现在突然报错:[Error: [auth/internal-error] An internal error has occurred, please try again.]。已经尝试修改Firebase配置、更新代码,问题依旧,求排查思路。

认证脚本:

async function signInWithPhoneNumber() {
  const phoneNumber = `${countryCode}${contact}`;
  if (!contact.trim() || !password.trim() || !confirmPassword.trim() || !name.trim()) {
    Alert.alert('Register Failed', 'Please Enter all required fields.');
    return;
  }

  if (contact.trim().length < 10) {
    Alert.alert('Invalid phone number', 'Please enter a valid phone number');
    return;
  }

  if (password !== confirmPassword) {
    Alert.alert('Password Mismatch', 'Passwords do not match. Please try again.');
    return;
  }

  const userExists = await checkUserExists(phoneNumber);
  if (userExists) {
    Alert.alert('Registration Error', 'This phone number is already registered.');
    return;
  } 

  try {
    const confirmation = await auth().signInWithPhoneNumber(phoneNumber);
    setConfirm(confirmation);
  } catch (error) {
    Alert.alert('Failed to send OTP', 'There was a problem sending the verification code.');
    console.log(error);
  }
}

错误日志:

LOG  [Error: [auth/internal-error] An internal error has occurred, please try again.]

排查步骤

  • 检查Firebase电话认证状态:登录Firebase控制台,确认「Authentication」>「登录方法」里的电话认证是否处于启用状态,避免被意外关闭。
  • 验证设备网络:确保测试设备网络稳定,能正常访问Firebase服务。可切换Wi-Fi/移动数据测试,排除防火墙或网络拦截问题。
  • 核对电话号码格式:确认countryCode带加号(如中国是+86),拼接后的phoneNumber符合E.164标准(例:+8613800138000),避免格式错误触发内部异常。
  • 统一Firebase依赖版本:执行npm list @react-native-firebase/auth和npm list @react-native-firebase/app,检查auth模块与核心app模块版本是否一致,版本不兼容易引发内部错误,必要时统一升级或降级到稳定版。
  • 查看Firebase后台错误详情:在Firebase控制台「Authentication」>「错误」标签,查看具体错误日志,里面会显示更详细的原因(如API密钥无效、配额超限、权限配置错误等)。
  • 核对Android应用签名指纹:如果是Android平台,检查Firebase控制台配置的SHA-1、SHA-256指纹是否与当前应用的签名证书一致,更换签名后需同步更新Firebase配置。
  • 简化测试流程:暂时注释checkUserExists等自定义逻辑,直接调用signInWithPhoneNumber,排除自定义代码引发的冲突。
  • 清除应用缓存数据:在测试设备上清除应用缓存和数据,重新安装后测试,避免旧配置缓存导致异常。

内容的提问来源于stack exchange,提问作者Muhammad Abdullah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 01:52:38