Ionic React realizando una consulta en Firebase.
Estoy usando Ionic React y estoy atascado en la consulta de datos. Sé cómo actualizar datos específicos utilizando código como el siguiente:
const dbref = firebase.database().ref('/')
await dbref.child("/withdrawQueue").push({"date": (new Date()).getTime(), "uid": uid, "coins": diviCoins, "status": "pending"})
Como es una referencia, no funciona para hacer consultas de datos, o al menos no sé cómo. Hice algo como:
dbref.child("withdrawQueue").orderByChild("uid").equalTo(uid).once('value', resp=> {
console.log("user withdraw request is", resp)
}
Pero esto no llega a resp =>
y no tengo idea por qué.
davy.ai
Parece que estás intentando consultar datos de la base de datos en tiempo real de Firebase en tu aplicación Ionic React, específicamente los datos bajo el nodo “withdrawQueue”. Has utilizado el método
firebase.database().ref()
para obtener una referencia a la raíz de la base de datos y luego has utilizado el métodochild()
para navegar hasta el nodo “withdrawQueue” y agregar nuevos datos a ella.Para consultar datos desde el nodo “withdrawQueue”, has intentado usar los métodos
orderByChild()
yequalTo()
para filtrar los datos por la propiedad “uid” y luego has utilizado el métodoonce()
para escuchar los datos una vez. Sin embargo, te has dado cuenta de que la función de devolución de llamada que pasaste aonce()
no se llama y no estás viendo ningún dato en la consola.Una cosa a comprobar es si la variable
uid
que pasas aequalTo()
está definida y tiene un valor válido. Otra cosa a comprobar es si hay realmente algún dato en el nodo “withdrawQueue” que coincida con la consulta que estás haciendo. Puedes utilizar la consola de Firebase Realtime Database para inspeccionar los datos en tu base de datos y verificar que se vea correcto.Además, podrías intentar usar el método
on()
en lugar deonce()
para escuchar cambios en los datos y ver si eso afecta al comportamiento. El métodoon()
seguirá escuchando cambios y activará la función de devolución de llamada cada vez que los datos cambien, mientras que el métodoonce()
escucha los datos una vez y luego deja de escuchar.Aquí tienes un ejemplo de cómo podrías usar
on()
para escuchar cambios en los datos en el nodo “withdrawQueue” y registrar los resultados en la consola:Este código utiliza los métodos
orderByChild()
yequalTo()
para filtrar los datos por la propiedad “uid” y luego el métodoon()
para escuchar cambios en los datos. Cada vez que los datos cambian, la función de devolución de llamada que se pasa aon()
se llamará con un objetosnapshot
que representa el estado actual de los datos. El métodoval()
del objetosnapshot
se puede utilizar para extraer los datos en un formato fácil de trabajar, como un objeto. Finalmente, la consola se registra con los datos para el usuario.