Nuxt + Firebase:名为“ [DEFAULT]”的Firebase应用已存在(应用/重复应用)

时间:2018-12-21 15:40:43

标签: firebase vue.js google-cloud-firestore nuxt.js

我正在为Firebase / firestore编写自己的nuxt插件。我正在使用以下命令将其加载到配置中:

plugins: [
    '~/plugins/firestore.js',
    { src: '~/plugins/vuex-persist', ssr: false }
],

文件本身看起来像这样

import Vue from 'vue'
import * as firebase from 'firebase/app';
import 'firebase/firestore';

const config = {
  ...
}
firebase.initializeApp(config)

const settings = {
  timestampsInSnapshots: true
}
const store = firebase.firestore()
store.settings(settings)


class Firestore {
  ...
}
const firestore = new Firestore()

export default ({ app }, inject) => {
  inject('firestore', firestore)
}

当我运行npm run dev时,它会尝试在每次自动重新加载时创建一个Firebase实例。我怎样才能只创建一次该实例?

Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app).

1 个答案:

答案 0 :(得分:1)

您可以检查firebase.apps以查看其是否已加载。如果只加载一次,则只需检查长度即可。如果您有多个,则可以检查每个应用程序的名称。一旦对我有帮助

if (!firebase.apps.length) {
    firebase.initializeApp({});
}