• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

231
Views
Obtener los datos en snapshot.val() pero no poder tratarlos

Estaba creando una aplicación y tenía que obtener datos de Realtime Database. Estoy obteniendo los datos en snapshot.val() así

 ►{xz0ezxzrpkb:{…}} ▼xz0ezxzrpkb:{blood_group:"B+",cause:"Random Cause",created_on:"08-02-2022",email:"example@gmail.com",location:"Random Location",message:"Random Message",name:"Any_Name",phone_number:"+91 *********"}

Y ahora quiero acceder a estos datos. Cuando intento snapshot.val()[0].email y
snapshot.val().[0].email que estoy recibiendo

 undefined (2)

Entonces, estoy trabajando en React Native y este es el código.

 db.ref('/requests/').on('value', (snapshot) => { console.log(snapshot.val()) console.log(snapshot.val()[0].email) console.log(snapshot.val().[0].email) });

Los nodos de la base de datos son los siguientes: ingrese la descripción de la imagen aquí

Por favor, ayúdame.

about 3 years ago · Juan Pablo Isaza
2 answers
Answer question

0

El valor de la instantánea no es un objeto. Intente refactorizar el código usando Object.keys() como se muestra a continuación:

 db.ref('/requests/').on('value', (snapshot) => { Object.keys(snapshot.val()).forEach((key) => { const request = snapshot.val()[key]; console.log(key, request.email) }) });
about 3 years ago · Juan Pablo Isaza Report

0

Si bien el enfoque en la respuesta de Dharmaraj funciona, recomiendo usar la operación forEach integrada de Firebase, ya que eso garantiza que procese los resultados en el mismo orden en que la base de datos los devuelve:

 db.ref('/requests/').on('value', (snapshot) => { snapshot.forEach((childSnapshot) => { console.log(childSnapshot.key) // "xz0ezxzrpkb" console.log(childSnapshot.val()) // {blood_group:"B+",cause:"Random Cause", ... console.log(childSnapshot.val().email) // "example@gmail.com" console.log(childSnapshot.child('email').val()) // "example@gmail.com" }) })
about 3 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 Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error