Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

128
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda