I would like to integrate Firebase in my Vue.JS app.
I wonder WHERE to put the references to Firebase.
To install firebase as a dependency in your project cd
into your project directory and run the following command in the command line
npm install --save firebase
Now in your main.js file add this
import Vue from 'vue'
import App from './App.vue'
import * as firebase from 'firebase'
import { store } from './store/store'
const config = {
apiKey: "xxxxxxx",
authDomain: "xxxxxxx",
databaseURL: "xxxxxxx",
storageBucket: "xxxxxxxx",
messagingSenderId: "xxxxxxx"
};
firebase.initializeApp(config);
Vue.prototype.$firebase = firebase;
new Vue({
el: '#app',
store,
render: h => h(App)
})
firebase-config.js
export const config = {
apiKey: "xxxxxxx",
authDomain: "xxxxxxx",
databaseURL: "xxxxxxx",
storageBucket: "xxxxxxxx",
messagingSenderId: "xxxxxxx"
};
Now in your main.js do as follows
import Vue from 'vue'
import App from './App.vue'
import * as firebase from 'firebase'
import { store } from './store/store'
import { config } from './firebase-config'
firebase.initializeApp(config);
Vue.prototype.$firebase = firebase;
new Vue({
el: '#app',
store,
render: h => h(App)
})
adding firebase to the Vue.prototype
allows usage of firebase in your vue components by using this.$firebase
if you don't want this behavior you can just initialize firebase using firebase.initializeApp(config);
now coming to your vuex store you can just import the firebase module as below
import Vue from 'vue'
import Vuex from 'vuex'
import * as firebase from 'firebase'
Vue.use(Vuex);
export const store = new Vuex.Store({
state:{},
mutations:{},
actions:{
myFirebaseAction: ({commit}) => {
//you can use firebase like this
var ref = firebase.database().ref()
}
}
});
Credits to @umang for suggesting to add the firebase
global namespace to the Vue.prototype
instead of the firebase app instance.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With