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

Expo React Native Bare Workflow集成Firebase编译及运行报错求助

Expo Bare Workflow 集成 Firebase 编译及模块报错解决方案

问题背景

用Expo React Native Bare Workflow(不用Expo Go)集成Firebase时踩了一堆坑:先是编译失败报两类错误,后来勉强能编译了,装@react-native-firebase/database又出现模块未安装的报错。之前的操作流程如下:

  1. 按Expo官方文档执行:
    • npx expo install expo-dev-client
    • npx expo install @react-native-firebase/app
  2. 按RN Firebase文档配置:
    • 把google-services.json放到/android/app/目录
    • 修改/android/build.gradle,在buildscript.dependencies里加classpath 'com.google.gms:google-services:4.3.15'
    • 修改/android/app/build.gradle,加apply plugin: 'com.google.gms.google-services'
    • 在app.json里配置googleServicesFile并添加@react-native-firebase/app插件
  3. 跑npx expo prebuild和npx expo run:android后报错:
    • 找不到SDK路径,提示要设ANDROID_HOME环境变量或local.properties里的sdk.dir
    • 没指定compileSdkVersion,要加到build.gradle
  4. 换npx expo start选Android能编译,但装完@react-native-firebase/database在App.js里引入后,报错:You attempted to use a firebase module that's not installed on your Android project by calling firebase.app(),手动在MainApplication.java加了ReactNativeFirebaseAppPackage还是没用。

分步解决办法

1. 先搞定SDK路径和compileSdkVersion报错

(1)SDK路径配置

  • 要么设环境变量ANDROID_HOME,指向你Android SDK的安装目录:Windows一般是C:\Users\[你的用户名]\AppData\Local\Android\Sdk,macOS是~/Library/Android/sdk
  • 要么在android目录下新建local.properties文件,写一行:
    sdk.dir=/你的/android/sdk/完整路径
    

(2)指定compileSdkVersion

打开android/build.gradle,在buildscript里加ext块(没有就新建):

buildscript {
    ext {
        compileSdkVersion = 33 // 选你SDK里有的版本,建议33及以上
        targetSdkVersion = 33
        minSdkVersion = 21
    }
    // 原来的其他内容不动...
}

再打开android/app/build.gradle,确保引用这个变量:

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    // 原来的其他内容不动...
}

2. 解决database模块未安装的报错

(1)重新安装并预构建

先重新装依赖,确保没漏:

npx expo install @react-native-firebase/database

然后清理旧的预构建文件重新生成,这步很重要:

npx expo prebuild --clean

(2)检查gradle插件位置

打开android/app/build.gradle,把apply plugin: 'com.google.gms.google-services'移到文件最后一行,必须放在所有依赖声明之后,不然会出问题。

(3)删掉手动加的ReactNativeFirebaseAppPackage

Expo预构建会自动配置Package列表,手动加反而会冲突,直接把MainApplication.java里关于ReactNativeFirebaseAppPackage的导入和添加代码删掉。

(4)清理缓存重新编译

执行这条命令彻底清理后编译:

cd android && ./gradlew clean && cd .. && npx expo run:android

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 21:55:00