javascript - 服务器错误类型错误:无法读取未定义的属性(读取“应用程序”)
问题描述
这是我的 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'
解决方案
您正在使用新的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())