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!
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) } });