Vuejs在全球范围内注册了vuefire

时间:2018-02-07 11:02:46

标签: javascript firebase firebase-realtime-database vuejs2 vuefire

所以我安装了vuefire,我有

form_with

中的

main.js

现在我被困在如何全局注册firebase,以便在组件内部我可以简单地执行

var Vue = require('vue')
var VueFire = require('vuefire')
var firebase = require('firebase')

Vue.use(VueFire)
var firebaseApp = firebase.initializeApp({ ... })
var db = firebaseApp.database()

如何在main.js文件中全局注册firebase,以便在其他组件中我不需要始终初始化firebase配置和数据库

2 个答案:

答案 0 :(得分:0)

我们还需要启动firebase连接。创建一个名为firebase.js的新文件。

import Firebase from 'firebase'

const firebaseApp = Firebase.initializeApp({
  // Populate your firebase configuration data here.
  ...
});

// Export the database for components to use.
// If you want to get fancy, use mixins or provide / inject to avoid redundant imports.
export const db = firebaseApp.database();

然后只使用另一个组件用户

<template>
  <p v-for="user of users">
    {{user.name}}
  </p>
</template>
<script>
import {db} from './firebase';

export default {
  data() {
    return {
      users: {}
    }
  },

  firebase: {
    users: {
      source: db.ref('users'),
      // Optional, allows you to handle any errors.
      cancelCallback(err) {
        console.error(err);
      }
    }
  }
}
</script>

答案 1 :(得分:0)

我所做的如下。 1.在src / plugins / firebaseApp.js中制作一个插件

import * as firebase from "firebase/app"
const config = {
  apiKey: "<your key>",
  authDomain: "<your domain>",
  databaseURL: "https://<your URL>.firebaseio.com",
  projectId: "<your projectId>",
}
export default firebase.initializeApp(config)

2。在main.js

...
import firebaseApp from './plugins/firebaseApp'
...

new Vue({
  ...
  firebaseApp,
  ...
  render: h => h(App)
}).$mount('#app')