Vue 路由器 firebase auth guard 不起作用

Vue router firebase auth guard doesn't work

我有一个带有 firebase 身份验证的简单路由保护,但它无法正常工作。

下面的代码没有呈现任何内容,也没有显示任何控制台错误。

所以,我现在没有在我的应用程序中实现任何身份验证系统,所以,它应该重定向到 /auth 路由并显示 Auth.vue 内容,但它没有显示任何内容,只是一个空白页。

知道如何解决吗?

Auth.vue

<template>
  <div class="auth">
    <h1>Auth</h1>
  </div>
</template>

Home.vue

<template>
  <div class="home">
    <h1>Home</h1>
  </div>
</template>

router.js

import Vue from 'vue'
import Router from 'vue-router'
import Home from './views/Home.vue'
import Auth from './views/Auth.vue'
import firebase from 'firebase/app'
import 'firebase/auth'

Vue.use(Router)

let router = new Router({
  routes: [
    {
      path: '/',
      name: 'home',
      component: Home,
      meta: {
        auth: true
      }
    },
    {
      path: '/auth',
      name: 'auth',
      component: Auth
    }
  ]
});

router.beforeEach((to, from, next) => {
  if (to.matched.some(record => record.meta.auth)) {
    firebase.auth().onAuthStateChanged(function(user) {
      if (!user) {
        next('/auth');
      } else {
        next();
      }
    });
  } else {
    next();
  }
});

export default router

尝试

if(!user) { next({ path: '/auth' }) }

而不是

if (!user) { next('/auth'); }