Expo React Native集成Firebase Analytics报错:未初始化DEFAULT应用
解决Expo React Native中Firebase Analytics初始化报错问题
问题根源
你碰到的Error: No Firebase App '[DEFAULT]' has been created - call firebase.initializeApp()错误,核心原因是Firebase核心实例未完成正确初始化。Expo环境下使用@react-native-firebase有专属配置要求,不能直接套用纯React Native的官方示例。
具体解决步骤
1. 安装Expo Firebase依赖包
先补上Expo官方的Google服务集成工具:
npx expo install expo-google-services
2. 配置Firebase平台服务文件
- 从Firebase控制台下载对应平台的配置文件:安卓端
google-services.json、iOS端GoogleService-Info.plist - 将文件放到项目根目录
- 在
app.json或app.config.js的expo字段中添加配置:
{ "expo": { "android": { "googleServicesFile": "./google-services.json" }, "ios": { "googleServicesFile": "./GoogleService-Info.plist" } } }
3. 手动初始化Firebase核心实例
在App组件中添加初始化逻辑,避免重复初始化:
import React, { useEffect } from 'react'; import { View, Button } from 'react-native'; import analytics from '@react-native-firebase/analytics'; import firebase from '@react-native-firebase/app'; // 替换成你从Firebase控制台获取的项目专属配置 const firebaseConfig = { apiKey: "你的API_KEY", authDomain: "你的AUTH_DOMAIN", projectId: "你的PROJECT_ID", storageBucket: "你的STORAGE_BUCKET", messagingSenderId: "你的MESSAGING_SENDER_ID", appId: "你的APP_ID", measurementId: "你的MEASUREMENT_ID" }; function App() { useEffect(() => { // 检查是否已有初始化实例,防止重复执行初始化 if (!firebase.apps.length) { firebase.initializeApp(firebaseConfig); } }, []); return ( <View> <Button title="Check analy" onPress={async () => await analytics().logSelectContent({ content_type: 'clothing', item_id: 'abcd', }) } /> </View> ); } export default App;
4. 清除缓存并重启项目
执行命令清除Expo缓存,避免旧配置干扰:
npx expo start -c
内容的提问来源于stack exchange,提问作者shabas 001
相关产品推荐
相关产品推荐

