添加react-native-firebase后编译失败:无法解析binaryToBase64
binaryToBase64 问题描述
在现有React Native应用中添加@react-native-firebase/app和database支持后,启动应用编译失败,报错:
./node_modules/@react-native-firebase/app/lib/common/Base64.js 模块未找到:无法在'\node_modules@react-native-firebase\app\lib\common'中解析'react-native/Libraries/Utilities/binaryToBase64'
已尝试升级所有模块至最新版本,但问题未解决。想明确两个问题:
- 哪个React Native版本移除了
binaryToBase64? - 使用旧版本React Native能否解决该问题?
当前项目package.json依赖项:
"dependencies": { "@react-native-firebase/app": "^18.4.1", "@react-native-firebase/database": "^18.4.1", "@testing-library/react": "^14.2.1", "@testing-library/user-event": "^14.5.2", "babel-core": "^4.7.16", "bootstrap": "^5.3.3", "firebase": "^10.8.1", "react": "^18.1.0", "react-bootstrap": "^2.10.1", "react-dom": "^18.1.0", "react-google-button": "^0.7.2", "react-native-base64": "^0.2.1", "react-native-web": "^0.19.10", "react-phone-number-input": "^3.3.9", "react-router-dom": "^6.22.2", "react-scripts": "^3.0.1", "web-vitals": "^3.5.2" },
问题解答
移除
binaryToBase64的React Native版本binaryToBase64在React Native 0.60版本中被移除,原路径被废弃,相关功能移至react-native/Libraries/Utilities/Base64模块。旧版本React Native是否可行?
降级到React Native 0.59.x及更早版本确实能解决路径解析问题,但不推荐——旧版本存在未修复的安全漏洞、兼容性缺陷,且无法支持新的React Native生态特性。更合理的解决方案
从你的依赖清单来看,项目同时混合了react-native-web、react-bootstrap等Web端依赖,而@react-native-firebase是专为原生iOS/Android平台设计的库,在Web环境下无法正常运行,这才是核心矛盾。
针对不同场景的修复建议:
- 如果是Web项目:直接使用已安装的Web版
firebaseSDK,移除@react-native-firebase/app和@react-native-firebase/database; - 如果是原生React Native项目:删除
react-native-web、react-bootstrap、react-router-dom、react-scripts等Web相关依赖,还原标准React Native项目结构; - 版本兼容性检查:
@react-native-firebase/app@18.x要求React Native版本至少为0.71.x,你的项目未明确声明react-native依赖(仅存在react-native-web),需添加正确的react-native依赖并指定符合要求的版本。
内容的提问来源于stack exchange,提问作者Bakavani

