【发布时间】:2018-10-06 12:56:01
【问题描述】:
我正在构建我的第一个 Vue.js 应用程序,尝试使用 vuex 和 vuexfire。
//main.js
import firebase from 'firebase';
...
Vue.prototype.$firebase = firebase.initializeApp(config);
...
firebase.auth().onAuthStateChanged(() => {
/* eslint-disable no-new */
new Vue({
el: '#app',
store,
router,
render: h => h(App),
created() {
this.$store.dispatch('setDealsRef');
},
});
});
router.beforeEach((to, from, next) => {
const currentUser = firebase.auth().currentUser;
const requiresAuth = to.matched.some(record => record.meta.requiresAuth);
if (requiresAuth && !currentUser) {
next('/signin');
} else if (requiresAuth && currentUser) {
next();
} else {
next();
}
});
还有:
//store/index.js
import Vue from 'vue';
import Vue from 'vue';
import Vuex from 'vuex';
import { firebaseMutations } from 'vuexfire';
...
Vue.use(Vuex);
const db = this.$firebase.firestore();
const dealsRef = db.collection('deals');
还有:
//store/mutations.js
export default {
SET_USER(state) {
state.user = this.$firebase.auth().currentUser;
},
...
}
这符合 OK,但在控制台中抛出 TypeError: this.$firebase is undefined[Learn More]。
知道我做错了什么吗?我想我已经阅读了所有相关教程和 StackOverflow 问题,并且尝试了所有方法。
【问题讨论】:
-
[Learn More]透露了什么? -
这只是
undefined上的常规 Mozilla 文档 -
啊,帮不上什么忙。
标签: firebase vue.js firebase-authentication