Actualmente estoy trabajando en un proyecto en el que los propietarios del estacionamiento deben usar el inicio de sesión del sitio web y otros usuarios deben usar el inicio de sesión de la aplicación móvil. Pero actualmente cualquier usuario puede iniciar sesión tanto en el sitio web como en la aplicación móvil.
aquí está mi base de datos en tiempo real de firebase mi base de datos en tiempo real
Entonces, como puede ver, definí el tipo en el usuario. al registrarse, un usuario obtiene un tipo según el dispositivo que está registrando
y mi función de inicio de sesión web es así:
signInWithEmailAndPassword(auth, email, password).then((userCredential) => { const user = userCredential.user; alert('User Logged in!'); window.location = 'user.html'; }).catch((error) => { const errorCode = error.code; const errorMessage = error.message; alert(errorMessage); });¿Cómo puedo proporcionar inicio de sesión para los usuarios que tienen 'type = web'?
Firebase Authentication solo se preocupa por las credenciales: si el correo electrónico o la contraseña que ingresa coinciden con los datos del sistema, puede iniciar sesión, sin importar en qué plataforma se encuentre. No hay forma de cambiar esto en Firebase Authentication, por lo que cualquier lógica adicional deberá provenir del código de su aplicación.
Por ejemplo, puede almacenar una lista de los UID de los propietarios del estacionamiento y verificarla después de iniciar sesión para permitir el uso de la aplicación web o no.
signInWithEmailAndPassword(auth, email, password).then((userCredential) => { const user = userCredential.user; if (user) { const uid = user.uid; // determine the UID of the user const ownersRef = firebase.database().ref("parkinglotOwners"); const userSnapshot = await ownersRef.child(uid).get(); // try to load this users data from parkinglotOwners if (userSnapshot.exists()) { // if this data exists window.location = 'user.html'; // send them to the web app } else { alert("You're not allowed to use this app"; // tell them to go away } } ... }).catch((error) => {