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

126
Vistas
Consulta de base de datos en tiempo real de Firebase para un campo específico

Me gustaría consultar una base de datos en tiempo real de Firebase para encontrar una cuenta de usuario basada en su correo electrónico.

ingrese la descripción de la imagen aquí

Así es como lo estoy haciendo actualmente con la identificación del usuario obviamente incorrecta cuando no conoce la identificación.

 const userData = (await UsersDatabase.ref(`/Users/oi73WHp4T8LUCgtZzesN`).once('value')).val();

¿Cómo puedo consultar a todos los usuarios para encontrar la cuenta con un correo electrónico específico?

Así es como se ve la respuesta JSON:

 { "userData":{ "Account Created":1647458347685, "Date of Birth":"01/01/1901", "Email":"user@domain.com", "Gender":"male", "Name":"Test Account" } }

Aquí está la respuesta actualizada de esta solicitud:

 const userData = (await UsersDatabase.ref("Users").child("userData").orderByChild("Email").equalTo("test@domain.com"));

Aquí está la respuesta en Postman:

 { "userData": "https://domain.europe-west1.firebasedatabase.app/Users/userData" }

¡Toda ayuda es bienvenida!

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

0

Suponiendo que la dirección de correo electrónico se almacena en la propiedad Email , puede usar una consulta para encontrar el nodo secundario correcto de Users con:

 UsersDatabase .ref("Users") .orderByChild("Email") .equalTo("user@domain.com")
about 4 years ago · Juan Pablo Isaza Denunciar

0

En esta línea, está esperando la Reference en sí, sin obtener sus datos:

 const userData = (await UsersDatabase.ref("Users").child("userData").orderByChild("Email").equalTo("test@domain.com"));

Esta línea debería ser (arreglada la consulta y fragmentada para facilitar la lectura):

 const userData = ( await UsersDatabase.ref("Users") .orderByChild("Email") // <-- removed .child("userData") .equalTo("test@domain.com") .once('value') // <-- this was missing ).val(); /* userData will be: { "oi73WHp4T8LUCgtZzesN": { // <- this will be random "Account Created":1647458347685, "Date of Birth":"01/01/1901", "Email":"test@domain.com", "Gender":"male", "Name":"Test Account" } } */

Aunque lo reescribiría así para desenvolver los datos:

 const foundUsersQuerySnapshot = await UsersDatabase.ref("Users") .orderByChild("Email") .equalTo("test@domain.com") .limitToFirst(1) .once('value'); let userData = null; foundUsersQuerySnapshot.forEach(childSnapshot => { userData = { ...childSnapshot.val(), _key: childSnapshot.key }; return true; // <- only return first entry }); /* userData will either be null (not found) or: { "_key": "oi73WHp4T8LUCgtZzesN", "Account Created":1647458347685, "Date of Birth":"01/01/1901", "Email":"test@domain.com", "Gender":"male", "Name":"Test Account" } */
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