Nuxt + Firebase:名为“[DEFAULT]”的 Firebase 应用程序已存在 (app/duplicate-app)
Nuxt + Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app)
我正在为 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).
您可以检查 firebase.apps
以查看其是否已加载。如果你只加载一次,那么你可以检查长度。如果您有多个,那么您可以检查每个应用程序的名称。曾经对我有帮助
if (!firebase.apps.length) {
firebase.initializeApp({});
}
我正在为 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).
您可以检查 firebase.apps
以查看其是否已加载。如果你只加载一次,那么你可以检查长度。如果您有多个,那么您可以检查每个应用程序的名称。曾经对我有帮助
if (!firebase.apps.length) {
firebase.initializeApp({});
}