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

React Native Expo集成Google Firebase Analytics遇插件问题,求解决方案

解决Expo React Native集成Firebase Analytics的替代方案

既然@react-native-firebase/analytics暂不支持Expo config plugin,你可以试试以下几种可行方案:

方案一:使用Expo官方的expo-firebase-analytics

这是Expo官方维护的Firebase Analytics集成包,完全支持config plugin,适配managed workflow:

  1. 安装依赖
npx expo install expo-firebase-analytics
  1. 在app.json中配置插件
{
  "expo": {
    "ios": {
      "bundleIdentifier": "你的iOS包名"
    },
    "android": {
      "package": "你的Android包名"
    },
    "plugins": [
      [
        "expo-firebase-analytics",
        {
          "analyticsCollectionEnabled": true, // 默认开启数据收集
          "firebaseUrl": "你的Firebase项目URL(可选)"
        }
      ]
    ]
  }
}
  1. 代码中使用
import * as FirebaseAnalytics from 'expo-firebase-analytics';

// 记录自定义事件
await FirebaseAnalytics.logEvent('screen_view', { screen_name: '首页' });
// 设置用户属性
await FirebaseAnalytics.setUserProperty('user_type', '付费用户');

方案二:切换到Bare Workflow,手动配置@react-native-firebase/analytics

如果坚持用react-native-firebase生态,可以把Expo项目转为bare workflow后手动配置原生端:

  1. 转为bare workflow
npx expo prebuild
  1. 确保已安装核心依赖
npm install @react-native-firebase/app @react-native-firebase/analytics
  1. 原生端配置
  • iOS:进入项目ios目录运行pod install,确保GoogleService-Info.plist已添加到Xcode项目中
  • Android:确保google-services.json已放在android/app目录下,同步Gradle项目
  1. 代码中使用
import analytics from '@react-native-firebase/analytics';

// 记录事件
analytics().logEvent('login', { method: '邮箱登录' });
// 禁用数据收集(如需)
analytics().setAnalyticsCollectionEnabled(false);

方案三:使用Firebase Web SDK(功能有限,适合快速验证)

如果不想处理原生配置,可以用Firebase Web SDK,缺点是部分原生专属追踪功能无法使用:

  1. 安装依赖
npm install firebase
  1. 初始化Firebase并使用
import { initializeApp } from 'firebase/app';
import { getAnalytics, logEvent } from 'firebase/analytics';

const firebaseConfig = {
  apiKey: "你的API_KEY",
  authDomain: "你的AUTH_DOMAIN",
  projectId: "你的PROJECT_ID",
  storageBucket: "你的STORAGE_BUCKET",
  messagingSenderId: "你的SENDER_ID",
  appId: "你的APP_ID",
  measurementId: "你的MEASUREMENT_ID"
};

const app = initializeApp(firebaseConfig);
const analytics = getAnalytics(app);

// 记录事件
logEvent(analytics, 'button_click', { button_name: '提交按钮' });

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 11:35:31