我得到这个错误。
TypeError:无法读取未定义的属性(阅读'$router')
我想这是因为我没有在我的文件中导入任何与路由器有关的内容,但我想这很奇怪,因为我在其他页面中做了同样的事情,这个错误并没有发生。
firebase.js
// Import the functions you need from the SDKs you need
import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";
import { getAuth, onAuthStateChanged } from "firebase/auth";
// Your web app's Firebase configuration
export const firebaseConfig = {
apiKey: process.env.API_KEY,
authDomain: process.env.AUTH_DOMAIN,
projectId: process.env.PROJECT_ID,
storageBucket: process.env.STORAGE_BUCKET,
messagingSenderId: process.env.MESSAGING_SENDER_ID,
appId: process.env.APP_ID,
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
export const auth = getAuth(initializeApp(firebaseConfig));
const authenticator = getAuth();
onAuthStateChanged(authenticator, (user) => {
if (user) {
const uid = user.uid;
console.log(user);
} else {
this.$router.push("/");
}
});
const db = getFirestore(app);
export default db;
这是我的网页添加一个事件,我做了同样的事情,上面和它的工作
添加事件.vue
...
else {
const docRef = await addDoc(collection(db, "eventos"), novoEvento);
this.$q.notify({
color: 'teal',
textColor: 'white',
icon: 'thumb_up',
message: 'Event created!',
position: 'top-right',
})
this.$router.push("/");
}
我没有将Vue上该页面中与路由或路由器相关的任何内容导入到该工作中,那么我该如何在firebase.js文件上进行导入呢?
1条答案
按热度按时间tp5buhyn1#
您没有发布您的
main.js
,但通常,在Vue应用中,路由器使用Vue.use(router)
或类似的方法注入到Vue应用中。因此,$router
变量被注入到所有Vue组件中,您可以使用this.$router
语法访问该变量。您的
firebase.js
文件不是一个Vue组件,因此没有$router
被注入其中。您需要通过直接从定义路由器对象的位置导入它来访问它。