【问题标题】:Firebase not initializing before it gets called in other filesFirebase 在其他文件中调用之前未初始化
【发布时间】:2017-08-02 09:10:04
【问题描述】:

我正在尝试在 vue 项目中使用 firebase。我有其他 js 文件,例如使用 firebase 的 auth.js,但我在我的 main.js 中初始化它(这应该是 webpack 的入口点),但似乎其他文件首先被调用?我在 webpack 模板中使用 vue-cli。

我得到的错误是

Firebase:没有创建 Firebase 应用“[DEFAULT]” - 调用 Firebase App.initializeApp() (app/no-app)。

这是我的 main.js 的第一部分

 // main.js
import Vue from 'vue';
import firebase from 'firebase';
// import firebaseui from 'firebaseui';
import VueFire from 'vuefire';
import App from './App';
import router from './router';
import database from './js/database';

Vue.use(VueFire);

const config = {
  apiKey: '***',
  authDomain: '***',
  databaseURL: '***',
  storageBucket: '***',
  messagingSenderId: '***',
};

firebase.initializeApp(config);
database.init();  

这是我第一次真正使用 firebase,有什么想法吗?

【问题讨论】:

  • 试试import * as firebase from "firebase";
  • @Saurabh 对我不起作用☹️

标签: javascript firebase vue.js


【解决方案1】:

我就是这样做的

import Vue from 'vue'
import VueResource from 'vue-resource'
import VueRouter from 'vue-router'
import App from './App.vue'
import { routes } from './routes'
import * as firebase from 'firebase'
import { store } from './store/store'

Vue.use(VueResource);
Vue.use(VueRouter);


const router = new VueRouter({
  routes,
});

let config = {
apiKey: "XXXX",
authDomain: "XXXXXX",
databaseURL: "xXxxxxxx",
storageBucket: "XXXXXX",
messagingSenderId: "XXXXXX"
};

Vue.prototype.$firebase = firebase.initializeApp(config);

new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})

我没有使用vue fire 但我可以通过调用在我的应用程序中使用 firebase 功能

this.$firebase.auth()
this.$firebase.database()
this.$firebase.storage()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 2017-11-24
    • 1970-01-01
    相关资源
    最近更新 更多