Estoy usando Firestore y Nuxt para mi proyecto.
Quiero que mi aplicación redirija las páginas según su tipo de usuario cuando inicien sesión.
Quiero si userType = contratista, cuando inicie sesión se redirigirá a /WPC/DashboardWPC. Quiero si userType = subcontratista, cuando inicie sesión se redirigirá a /Form/SectionA.
Pero actualmente, al iniciar sesión, siempre se redirigirá a /Form/SectionA. no quiero eso Quiero que inicie sesión en diferentes páginas según su tipo de usuario.
¿Algún consejo?
Login() { let credentials = { email: this.email, password: this.password, }; this.$store .dispatch("user/Login", credentials) .then(() => { const users = firestore.collection('Users') users.get().then(() => { if (firestore.collection('Users').where("userType", "==", "subcontractor")) { window.location = "/Form/SectionA"; } else if (firestore.collection('Users').where("userType", "==", "contractor")) { //console.log(snapshot.docs[0].data()) window.location = "/WPC/DashboardWPC"; } else { window.location = "/BWG/DashboardBWG"; } }) }).catch((err) => { alert(err.message) }) }
No estoy seguro de cómo permite que sus usuarios inicien sesión, pero signInWithEmailAndPassword es el método que proporciona Firebase.
No tengo experiencia con nuxt.js
pero algo como esto debería darte una idea general:
Login() { firebase.auth().signInWithEmailAndPassword(this.email, this.password) .then((user) => { const _userDoc = firestore.collection('Users').doc(user.uid).get(); const userType = _userDoc.data['userType']; if(userType == "subcontractor"){ window.location = "/Form/SectionA"; } else if(userType == "contractor"){ window.location = "/WPC/DashboardWPC"; } else{ window.location = "/BWG/DashboardBWG"; } }, (err) => { alert(err.message); }, ); }
Además, para registrar a tus usuarios puedes utilizar el método createUserWithEmailAndPassword .