Firebase beforeeach() 触发很多次(Vue 应用程序)

Firebase beforeeach() fires a lot of times (Vue app)

我正在使用 Firebase 和 Vue js 构建帖子应用程序。我有一些问题: 我的路由器:

import Vue from 'vue'
import Router from 'vue-router'
import Dashboard from '@/components/Dashboard'
import Login from '@/components/Login'
import SignUp from '@/components/SingUp'
import RecentPosts from '@/components/RecentPosts';
import firebase from 'firebase'

Vue.use(Router)

let router = new Router({
  routes: [
   ...... some routes
    {
      path: '/recentPosts',
      name: 'RecentPosts',
      component: RecentPosts,
      meta:{
        requireAuth: true
      }
    }
  ]
})
router.beforeEach((to, from, next) => {
  let currentUser = firebase.auth().currentUser;
  let requiresAuth = to.matched.some(r => r.meta.requiresAuth);
  console.log("CURRENTUSER",currentUser);
  if(!currentUser && requiresAuth) {
    next('Login');
  }else if(currentUser && !requiresAuth) {
    next('Dashboard');
  }else if (currentUser && requiresAuth) {
    next();
  }else {
    next();
  }
});
export default router;

在我转到 /recentPosts 之后,我的函数 beforeeach 触发了很多次,以至于它阻止了我的应用程序。 为什么我无法访问 /recentPosts ?我已登录用户,因此它应该可以解决我的溃败问题,但事实并非如此。

else if (currentUser && requiresAuth) {
    next();
}

它应该解析我的“/recentsposts”路由,但它不是

这可能是因为您在 require(s):

处有错字
    {
      path: '/recentPosts',
      name: 'RecentPosts',
      component: RecentPosts,
      meta:{
        requireAuth: true     // <- without "s" at the end of require
      }
    }
  ]
})
router.beforeEach((to, from, next) => {
  let currentUser = firebase.auth().currentUser;
  let requiresAuth = to.matched.some(r => r.meta.requiresAuth);   // <- with an "s" at the end of requires