名为“[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()