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

创建新React Native应用时出现Uncaught TypeError: initializeApp不是函数错误

解决Uncaught TypeError: firebase_compat_app__WEBPACK_IMPORTED_MODULE_4__.initializeApp is not a function错误

错误原因

你使用了Firebase兼容版本(compat),但未初始化Firebase应用,所有Firebase功能都需要先完成初始化才能调用;另外需确认Firebase依赖安装正确。

解决方案

1. 确认Firebase兼容版本安装正确

如果未安装或版本不匹配,执行以下命令:

npm install firebase@^9.23.0
# 或使用yarn:yarn add firebase@^9.23.0

2. 添加Firebase初始化代码

所有Firebase功能调用前,必须先通过项目配置初始化应用。修改你的LoadingScreen代码如下:

import { ActivityIndicator, StyleSheet, View } from 'react-native'
import React from 'react';
import * as firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/database';

// 从你的Firebase控制台复制项目配置
const firebaseConfig = {
  apiKey: "你的API_KEY",
  authDomain: "你的AUTH_DOMAIN",
  databaseURL: "你的DATABASE_URL",
  projectId: "你的PROJECT_ID",
  storageBucket: "你的STORAGE_BUCKET",
  messagingSenderId: "你的MESSAGING_SENDER_ID",
  appId: "你的APP_ID"
};

// 仅初始化一次应用,避免重复初始化报错
if (!firebase.apps.length) {
  firebase.initializeApp(firebaseConfig);
}

class LoadingScreen extends React.Component {

    componentDidMount() { 
        this.checkIfLoggedIn();
    };


    checkIfLoggedIn = () => {
        firebase.auth().onAuthStateChanged(user => {
            if (user) {
                this.props.navigation.navigate('DashboardScreen')
            } else {
                this.props.navigation.navigate('LoginScreen')
            };
        });
    };


    render() {
        return (
            <View style={styles.container}>
                <ActivityIndicator size="large" />
            </View>
        )
    }
};

const styles = StyleSheet.create({
    container: {
        flex: 1,
        justifyContent: 'center',
        alignItems: 'center'
    }
});

export default LoadingScreen;

3. 关键注意事项

  • firebaseConfig的内容必须从你自己的Firebase项目控制台获取,不能直接使用示例占位符
  • 初始化代码只需执行一次,推荐将Firebase配置和初始化逻辑放到单独文件(如firebase.js)中,再在需要的组件中导入,避免重复初始化
  • 你当前使用的是Firebase兼容版本(compat),上述写法适配该版本;若后续切换到Firebase 9+模块化版本,写法会有差异

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 03:06:22