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

React Native Firebase Auth手机号登录NativeEventEmitter警告解决方案

React Native Firebase手机号登录NativeEventEmitter警告修复方案

该警告本质是React Native 0.65+版本收紧了NativeEventEmitter的接口校验规则,旧版React Native Firebase模块未适配新接口要求,手动修改node_modules补全方法的方案对自动链接的Firebase模块无效——重新安装依赖、编译时缓存覆盖都会导致修改失效。

按以下步骤操作即可解决:

  • 首先校验依赖包名正确性:官方维护的React Native Firebase包作用域为@react-native-firebase,非@firebase-react-native,包名安装错误是该问题的高频诱因。先执行命令卸载错误依赖:
    yarn remove @firebase-react-native/app @firebase-react-native/auth
    
    安装官方正确依赖:
    yarn add @react-native-firebase/app @react-native-firebase/auth
    
  • 执行全量编译缓存清理,仅执行yarn android不会清理旧构建产物,会导致修改不生效:
    # 清理安卓构建缓存
    cd android && ./gradlew clean && cd ..
    # 启动metro时重置缓存
    yarn start --reset-cache
    
  • 若已安装官方正确依赖,直接将依赖升级到v14.3.0以上的稳定版本,官方从该版本开始已完成新版NativeEventEmitter接口适配:
    yarn upgrade @react-native-firebase/app @react-native-firebase/auth --latest
    
  • 升级完成后若仍有警告(多为其他关联第三方依赖触发),可在项目入口文件(如index.js)最顶部添加代码屏蔽指定警告,该操作不会影响手机号验证码发送、校验的正常逻辑:
    import { LogBox } from 'react-native';
    LogBox.ignoreLogs([
      '`new NativeEventEmitter()` was called with a non-null argument without the required `addListener` method',
      '`new NativeEventEmitter()` was called with a non-null argument without the required `removeListeners` method'
    ]);
    

注意:不要通过手动修改node_modules内源码的方式补全addListener/removeListeners方法,该方式修改的内容会在依赖重新安装、构建缓存命中时失效,无法彻底解决问题。

内容的提问来源于stack exchange,提问作者Jeaf Gilbert

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 11:48:17