Firebase在其他文件中调用之前未初始化

时间:2017-03-12 08:14:52

标签: javascript firebase vue.js

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

我得到的错误是

  

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,任何想法是怎么回事?

1 个答案:

答案 0 :(得分:4)

我就这样做了

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 但我可以通过调用

在我的应用程序上使用alll的firebase功能
this.$firebase.auth()
this.$firebase.database()
this.$firebase.storage()