Firebase beforeeach () срабатывает много раз (приложение Vue) - PullRequest
0 голосов
/ 14 ноября 2018

Я создаю приложение posts, используя 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 срабатывает так много раз, что блокирует мое приложение.Почему я не могу получить доступ / недавние посты?Я вошел в систему пользователя, поэтому он должен разрешить мой маршрут, но это не так.

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

Он должен разрешить мой маршрут '/ recentsposts', но это не

1 Ответ

0 голосов
/ 14 ноября 2018

Это, вероятно, потому что у вас есть опечатка на 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...