Firebase 异步新建Vue()以等待初始身份验证

Firebase 异步新建Vue()以等待初始身份验证,firebase,asynchronous,vue.js,firebase-authentication,Firebase,Asynchronous,Vue.js,Firebase Authentication,我是Vue的新手,目前正在设置一个应用程序,使用firebase身份验证和firestore进行基本RBAC。 为了防止未经授权的用户进入路由,我的路由器有一个自定义AuthGuard来检查本地用户角色(后端实现类似的规则) 这个设置的一个问题是,将用户链接发送到受保护的页面不起作用。由于在Vue应用程序初始化时本地用户未设置为已初始化,因此身份验证保护阻止他们加载页面 因此,我想出了一种方法,通过构建我的main.js来延迟Vue应用程序的创建: import Vue from 'vue' .

我是Vue的新手,目前正在设置一个应用程序,使用firebase身份验证和firestore进行基本RBAC。 为了防止未经授权的用户进入路由,我的路由器有一个自定义AuthGuard来检查本地用户角色(后端实现类似的规则)

这个设置的一个问题是,将用户链接发送到受保护的页面不起作用。由于在Vue应用程序初始化时本地
用户
未设置为已初始化,因此身份验证保护阻止他们加载页面

因此,我想出了一种方法,通过构建我的
main.js
来延迟Vue应用程序的创建:

import Vue from 'vue'
...
init()
.then(() => new Vue(..)
init
函数期间,我正在等待
firebase.auth().onAuthStateChanged
触发,并告诉我用户是否有有效的令牌。它确实有效,但感觉不对劲


异步创建新的Vue应用程序可以吗?有没有更好的方法,比如在路由上延迟加载身份验证保护之类的?

我对Vue和Azure Active Directory身份验证也这么做,这似乎是最好的方法

请参见Miguels的回答:


这就是你想要的答案吗?

知道别人也这么做肯定会有帮助。谢谢蒂姆:)
import Vue from 'vue'
...
init()
.then(() => new Vue(..)