Quasar Vue 3 Firebase - 如何在 firebase 初始化后加载 Vue App?

Quasar Vue 3 Firebase - How to load Vue App after firebase initialized?

我在 Firebase 中使用 Quasar v2 和 VueJS 3。我已经阅读了互联网上的所有评论和答案来解决这个问题,但 none 有效。 boot/firebase.js 正在初始化 firebase(和 firestore、函数等)但我需要某事(如 Vue main.js)在 onAuthstateChanged 之后加载 Vue 应用程序。我不想保护我的路线(请不要给我推荐像 beforeEnter 或 befaoreEach gurads 这样的常规示例)。

我只想在 firebase auth 和 firestore 等正确初始化和加载后加载 Vue 应用程序。我使用 boot/firebase.js 并在其中添加了一些 Auth 逻辑。在启动文件进程完成之前,路由器仍在工作。我把 console.log(username) 同时放在 firebase.js 和 route-guard 中。 route guard returns null 然后 firebase returns 用户名 1 在 500 毫秒后。我需要解决这个问题。同样,我不想检查用户是否已通过身份验证。因为我有 /:username 路由和 /home /about 路由。

我也使用 Vuex 商店和 LocalStorage,但是当注销然后注册时,注册将我推送到 /:username 页面和用户名 beforeEnter route guard load before username set to state and Localstorage。我使用 sleep(2000) async await 但还是一样。

如何在 Quasar 上操作 Vue App?

感谢 Sy3d 的回答

如何在 firebase 连接初始化后将 quasar 应用挂载到 dom?

src/boot/auth.js

import { auth } from 'src/boot/firebase'

export default async ({ app, router, store }) => {
    return new Promise(resolve => {
        const unsubscribe = authService.onAuthStateChanged(() => {
            resolve()
            unsubscribe()
        })
    })
}