Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

99
Views
¿Cómo seleccionar una única base de datos en tiempo real de Firebase utilizando la condición en la que reacciona?

En mi proyecto, quiero seleccionar una sola dirección de correo electrónico basada en el correo electrónico del usuario usando la condición where pero no funciona. como puedo solucionar esto

Estructura de la base de datos en la base de datos firebase.

 facebook-clone-1870b-default-rtdb users users -MoZJ7ZnwvhQ6I8_M7N8 active: "9:41:37 PM" email: "dstha221@gmail.com" joined_at: "121-101-1" name: "JE EV An" profile: "https://platform-lookaside.fbsbx.com/platform/p..."

Aquí está el código

 import {useCollection} from "react-firebase-hooks/firestore"; import { db, storage } from "../../firebases"; import {useRouter} from 'next/router'; import firebase from 'firebase'; const Chats=({id,users,session})=>{ // const recepiantEmail=GetRecepitentEmail(users,session.user.email); useEffect(()=>{ const data = firebase.database().ref('users').orderByChild(`${id}/email`).equalTo(session.user.name); data.once('value',(snapshot)=>{ console.log("equal address",snapshot.val()) }) },[]) console.log(recepitantSnapshot) // const recepiant= recepitantSnapshot?.docs?.[0]?.data(); const router = useRouter(); const enterChat=()=>{ // router.push(`/chat/${id}`); } return( <> <div className=" flex items-center cursor-pointer p-2"> <div className="m-1 mr-2 w-3"onClick={enterChat}> {/* <img src={recepitantSnapshot.profile}></img> */} </div> {/* <p>{recepitantSnapshot.name}</p> */} </div> </> ) } export default Chats;
about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

El método orderByChild ya encuentra la propiedad de cada elemento secundario, por lo que no debe incluir el ${id} allí:

 const data = firebase.database().ref('users').orderByChild('email').equalTo(session.user.name);

Un segundo problema: cuando ejecuta una consulta en la base de datos de Firebase, potencialmente habrá múltiples resultados. Entonces, la instantánea contiene una lista de esos resultados. Incluso si solo hay un único resultado, la instantánea contendrá una lista de un resultado.

Su código necesita manejar esto, haciendo un bucle de los elementos secundarios de la instantánea con:

 data.once('value',(snapshot)=>{ snapshot.forEach((child) => { console.log("equal address",child.key, child.val()) }); })
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!