【问题标题】:Vue: Firebase: Error in mounted hook: "FirebaseError: No Firebase App '[DEFAULT]' has been createdVue:Firebase:挂载钩子错误:“FirebaseError:没有创建Firebase App'[DEFAULT]'
【发布时间】:2020-05-14 11:57:50
【问题描述】:

我正在构建 Vue SPA 并在发布之前检查了许多帖子。

我不确定我做错了什么。

下面是我的 App.Vue:

<template>
    <div id="app">
        <Navigation />
        <router-view class="container" :user="user" />
    </div>
</template>

<script>
import Navigation from '@/components/Navigation.vue';
// import db from './db.js';
import Firebase from 'firebase';
export default {
    name: 'App',
    data: function() {
        return {
            user: null,
        };
    },
    mounted() {

        Firebase.auth().onAuthStateChanged(user => {
            if (user) {
                this.user = user.email;
            }
        });
    },
    components: {
        Navigation,
    },
};
</script>

<style lang="scss">
$primary: #37c6cf;
@import '../node_modules/bootstrap/scss/bootstrap';
</style>

注意:我已经评论了从 db.js 的导入,在第一次导入后可以找到。如果我启用它,Vue CLI 会抛出不同的错误。

在 db.js 中:

import firebase from 'firebase';
const firebaseConfig = {
    apiKey: 'yourkey',
    authDomain: 'domainnew.firebaseapp.com',
    databaseURL: 'yourdomain.com',
    projectId: 'yourproject',
    storageBucket: 'test',
    messagingSenderId: '454545',
    appId: '1:444d96:web:d78df',
    measurementId: 'G-69599595',
};

// Initialize firebase
const firebaseApp = firebase.initializeApp(firebaseConfig);
firebase.analytics();
export default firebaseApp.firestore();

在控制台中,我不断收到两个错误,并且我的 Vue 没有从 Firebase 检索我的电子邮件地址。

任何人都可以在这方面提供帮助。

【问题讨论】:

  • 您的 Firebase 配置在哪里?您在哪里初始化 firebase 应用程序?您是否碰巧阅读了说明npmjs.com/package/firebase#npm-bundler-browserify-webpack-etc。您需要导入 firebase 并使用 firebase 控制台为此应用提供的配置进行初始化。
  • 对不起,它在 db.js 上。我正在这个文件上初始化我的 firebase。
  • 您将导出/导入 firebase 应用的实例,而不是 firebase 本身。
  • 更新了我的 db.js 代码。因为我没有从 db.js 安装任何东西。如果我启用 db.js 的导入语句。 Vue cli 抛出错误
  • 由于您没有将db.js 导入App.Vue,在我看来FirebaseApp 将不会被初始化,这反过来会解释错误。如果您在导入工作时遇到困难,您可能希望首先在没有导入的情况下让事情正常工作,因此将firebase.initializeApp(firebaseConfig) 直接放在App.Vue 本身内。

标签: javascript firebase vue.js vuejs2 firebase-authentication


【解决方案1】:

以下应该可以解决问题:

db.js 文件

import firebase from 'firebase/app';
import "firebase/analytics";
import 'firebase/firestore';
import 'firebase/auth';

const firebaseConfig = {
    apiKey: 'yourkey',
    authDomain: 'domainnew.firebaseapp.com',
    databaseURL: 'yourdomain.com',
    projectId: 'yourproject',
    storageBucket: 'test',
    messagingSenderId: '454545',
    appId: '1:444d96:web:d78df',
    measurementId: 'G-69599595',
};

firebase.initializeApp(firebaseConfig);



const db = firebase.firestore();
const auth = firebase.auth();
const analytics = firebase.analytics();

export { db, auth, analytics };

App.js 文件

<template>
    <div id="app">
        <Navigation />
        <router-view class="container" :user="user" />
    </div>
</template>

<script>
import Navigation from '@/components/Navigation.vue';
const fb = require('./db.js');

export default {
    name: 'App',
    data: function() {
        return {
            user: null,
        };
    },
    mounted() {

        fb.auth.onAuthStateChanged(user => {
            if (user) {
                this.user = user.email;
            }
        });
    },
    components: {
        Navigation,
    },
};
</script>

<style lang="scss">
$primary: #37c6cf;
@import '../node_modules/bootstrap/scss/bootstrap';
</style>

【讨论】:

  • @RagavanRajan 嗨,您有时间查看建议的解决方案吗?谢谢
  • 抱歉耽搁了。像魅力一样工作:) 非常感谢。
  • 嗨@RagavanRajan,很高兴我能帮助你!如果您认为答案有帮助,您也可以投票赞成!谢谢:-)
  • 当然。再次感谢
猜你喜欢
  • 1970-01-01
  • 2022-11-07
  • 2021-07-29
  • 1970-01-01
  • 2019-10-31
  • 1970-01-01
  • 2021-09-13
  • 2017-02-09
  • 2020-05-21
相关资源
最近更新 更多