【发布时间】:2021-12-17 03:35:10
【问题描述】:
我第一次在我的 Quasar 应用程序中实施 Firebase(使用 Vue 3)。我创建了启动文件 firebase.js,这是它的内容:
import { boot } from 'quasar/wrappers'
import { initializeApp } from 'firebase/app';
import { getAnalytics } from "firebase/analytics";
// "async" is optional;
// more info on params: https://v2.quasar.dev/quasar-cli/boot-files
const firebaseConfig = {
apiKey: 'XXX',
authDomain: 'XXX',
projectId: 'XXX',
storageBucket: 'XXX',
messagingSenderId: 'XXX',
appId: 'XXX',
measurementId: 'XXX'
};
const firebaseApp = initializeApp(firebaseConfig);
const analyticsApp = getAnalytics(firebaseApp);
firebaseApp.getCurrentUser = () => {
return new Promise((resolve, reject) => {
const unsubscribe = firebaseApp.auth().onAuthStateChanged(user => {
unsubscribe();
resolve(user);
}, reject);
})
};
export default boot(({ app }) => {
app.config.globalProperties.$firebase = firebaseApp;
app.config.globalProperties.$analytics = analyticsApp;
})
初始化似乎工作正常。现在我必须向我的 index.ts 添加一个函数,该函数位于路由器目录中,允许我在用户未通过身份验证时重定向到特定页面。
Router.beforeEach(async (to, from, next) => {
const auth = to.meta.requiresAuth
if (auth && !await $firebase.getCurrentUser()) {
next('/');
} else {
next();
}
})
$firebase 必须引用 globalproperties 项。但无论我更改了什么,我都无法访问该属性。
你能帮帮我吗?
罗伯托
【问题讨论】:
标签: javascript firebase vue.js vuejs3 quasar