名为“[DEFAULT]”的 Firebase 应用程序已存在于 Vuex + Nuxt SPA 中
Firebase App named '[DEFAULT]' already exists in Vuex + Nuxt SPA
我使用了带有 nuxt/starter 模板的 Vue CLI。我在 /store
文件夹中创建了 index.js
,内容如下:
import Vuex from 'vuex'
import firebase from 'firebase'
import { firebaseMutations } from 'vuexfire'
var db = firebase.initializeApp({
databaseURL: 'https://vuefiredemo.firebaseio.com'
}).database()
var todosRef = db.ref('todos')
const store = new Vuex.Store({
state: {
counter: 0,
todos: todosRef
},
mutations: {
increment (state) {
state.counter++
},
decrement (state) {
state.counter--
},
...firebaseMutations
}
})
export default store
这有效,数据在页面刷新和服务器端呈现之前有效。仅当 SSR 我收到以下错误:
Nuxt.js Error: [DEFAULT]: Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app).
是不是SSR创建了一个Firebase实例,然后客户端又创建了一个?
你可以试试这个:
if (firebase.apps.length === 0) {
firebase.initializeApp({
databaseURL: 'https://vuefiredemo.firebaseio.com'
})
}
export default firebase.database()
我使用了带有 nuxt/starter 模板的 Vue CLI。我在 /store
文件夹中创建了 index.js
,内容如下:
import Vuex from 'vuex'
import firebase from 'firebase'
import { firebaseMutations } from 'vuexfire'
var db = firebase.initializeApp({
databaseURL: 'https://vuefiredemo.firebaseio.com'
}).database()
var todosRef = db.ref('todos')
const store = new Vuex.Store({
state: {
counter: 0,
todos: todosRef
},
mutations: {
increment (state) {
state.counter++
},
decrement (state) {
state.counter--
},
...firebaseMutations
}
})
export default store
这有效,数据在页面刷新和服务器端呈现之前有效。仅当 SSR 我收到以下错误:
Nuxt.js Error: [DEFAULT]: Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app).
是不是SSR创建了一个Firebase实例,然后客户端又创建了一个?
你可以试试这个:
if (firebase.apps.length === 0) {
firebase.initializeApp({
databaseURL: 'https://vuefiredemo.firebaseio.com'
})
}
export default firebase.database()