Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

161
Vistas
Cómo hacer un inicio de sesión separado para Usuarios y Freelancer basado en Roles que están en mi base de datos en tiempo real Firebase

Hola, estoy trabajando en una aplicación web con Firebase Realtime Database y autenticación con nodejs o javascript.

Esta es mi base de datos en tiempo real y quiero crear un formulario de inicio de sesión que, si el Usuario = Usuario, irá al Índice de usuarios y si el Usuario = Trabajador independiente, irá al Índice de trabajadores independientes.

Y esta es la línea de código que estaba modificando o probando, pero no se interpone en mi camino.

 <script> firebase.auth().onAuthStateChanged(function(user) { if(user) { var userID = firebase.auth().currentUser.uid; firebase.database().ref('Users/' + userID).once('value').then(function(snapshot) { if (snapshot.val()) { window.location.href = "index.html"; } else { window.location.href = "okay.html"; } }); } }); </script>

Espero poder obtener comentarios o respuestas aquí. Ya casi lo intento durante 2 días, por eso busco ayuda aquí. Comentarios y respuestas son muy apreciados gracias!

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Con su estructura de datos actual, deberá verificar en dos lugares para determinar qué rol tiene un usuario. Si bien esto es técnicamente posible, es menos eficiente y más complejo en código.

En su lugar, recomiendo almacenar un solo nodo de nivel superior (por ejemplo, UserRoles ) donde simplemente mantiene el rol para cada UID:

 "UserRoles": { "uidOfUser1": "Freelancer", "uidOfUser2": "User" }

Con eso en su lugar, puede cargarlo en su devolución de llamada onAuthStateChanged con:

 const ref = firebase.database.ref("UserRoles"); ref.child(user.uid).once("value").then((snapshot) => { if (snapshot.val() === "Freelancer") { window.location.href = "okay.html"; } else if (snapshot.val() === "User") { window.location.href = "index.html"; } else { alert("Can't determine role for user: "+user.uid) } });
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda