首页 > 解决方案 > 服务器错误类型错误:无法读取未定义的属性(读取“应用程序”)

问题描述

这是我的 firebase sdk 版本

firebase@9.0.2

这是firebase的初始化代码我无法解决这个错误请帮我解决这个错误




export default function  initFirebase() {
    if(!firebase.apps.length){
        firebase.initializeApp(clientCredentials)

        if(typeof window !=='undefined'){
            if('measurementId' in clientCredentials){
                firebase.analytics()
                firebase.performance()
            }
        }
        console.log('firebase was successfully init')
    }
}

我如何导入 Firebase

import firebase from 'firebase/app'

import 'firebase/firestore'
import 'firebase/storage'
import 'firebase/analytics'
import 'firebase/performance'

标签: javascriptreactjsfirebasenext.js

解决方案


您正在使用新的Modular SDK ( V9.0.0+),它旨在促进 tree-shaking(删除未使用的代码)以使您的 Web 应用程序尽可能小和快。如果要使用现有代码(V8 名称空间语法),则必须将导入更改compat为如下所示的版本:

import firebase from 'firebase/compat/app'
import 'firebase/compat/firestore'
// import 'firebase/compat/[SERVICE_NAME]'

但是,我建议升级到新的 SDK。模块化/函数式语法如下所示:

import { initializeApp } 'firebase/app'
import { getAuth } from 'firebase/auth'
import { getFirestore } from 'firebase/firestore'

const app = initializeApp({ ...firebaseConfig })

const auth = getAuth(app)
const firestore = getFirestore(app)
// other Firebase services

您不必检查模块化语法中是否已存在默认 Firebase 应用实例。但是,如果您需要列出 Firebase 实例,可以使用getApps()

import { getApps } from 'firebase/app'

console.log(getApps())

推荐阅读