3 回答
TA贡献2021条经验 获得超8个赞
如果您在单个 Firebase 应用程序上调用initializeApp()
多次,通常会发生这种情况。如果您使用单个 Firebase 数据库,请确保在应用启动时对其进行初始化。
TA贡献1804条经验 获得超8个赞
firebase.js的这个代码片段应该可以工作:
import fb from "firebase/app"
export const firebase = !fb.apps.length ? fb.initializeApp(firebaseConfig) : fb.app()
// somecomponent.js
import {firebase} from "../firebase.js"
// do your firebase stuff here
尽管此代码片段并非特定于案例,但为了完整性起见,我决定将其包含在内。
除了这个线程之外 - 一般来说,通常是在初始化 via 之前调用或多次调用Uncaught FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app).
的结果(例如Next.js可能会尝试在后端以及前端初始化它 - 似乎是这种情况在您的代码中)在您的 firebase 应用程序中。firebase.
.initializeApp();
.initializeApp()
因此,作为解决方案,我强烈建议将初始化移动到firebase.js文件,以便在应用程序启动时直接初始化它。
TA贡献1820条经验 获得超9个赞
当您在初始化 Firebase 之前尝试访问 Firestore 时,通常会发生这种情况。因此,默认情况下,我们可以检查 firebase 是否已初始化,firebase.apps.length但每次都初始化 firebase 并不是一个好习惯。
因此,如果您只使用 firestore,那么在您的插件中,您可以在初始化后直接导出 firestore,如下所示,
import firebase from 'firebase/app'
const config = {
...
}
let app = null
if (!firebase.apps.length) {
app = firebase.initializeApp(config)
}
export default firebase.firestore()
但由于您使用的是 nuxt,因此有一个名为firebase/nuxt的特殊 nuxt 包
安装后,您可以在模块部分内的 nuxt config 中定义您的配置,如下所示,
modules: [
[
'@nuxtjs/firebase',
{
config: {
apiKey: '<apiKey>',
authDomain: '<authDomain>',
databaseURL: '<databaseURL>',
projectId: '<projectId>',
storageBucket: '<storageBucket>',
messagingSenderId: '<messagingSenderId>',
appId: '<appId>',
measurementId: '<measurementId>'
},
services: {
auth: true // Just as example. Can be any other service.
}
}
]
],
我认为这是在 nuxt.js 中使用 firebase 的更好方法
添加回答
举报