De acuerdo con los documentos , uso este código para obtener los jugadores en orden ascendente:
const db = getDatabase(); const playersByPoints = query( ref(db, 'usersPoints'), orderByChild('points'), ); Pero cuando hago console.log(playersByPoints) obtengo esto:
"https://app-name.firebaseio.com/usersPoints"
Aquí está la base de datos:
¿Me estoy perdiendo de algo?
¡Gracias!
Tus playersByPoints aquí es un objeto Query , que cuando se registra devuelve la cadena de referencia de la base de datos vinculada.
En realidad, debe invocar la consulta usando get(q) o onValue(q) para obtener los datos que está buscando.
// one-off const playersByPointsQuery = query( ref(db, 'usersPoints'), orderByChild('points'), ); const playersByPointsQuerySnapshot = await get(playersByPointsQuery); const playersByPoints = []; playersByPointsQuerySnapshot.forEach(childSnapshot => { playersByPoints.push({ ...childSnapshot.val(), _key: childSnapshot.key }); }); // todo: do something with playersByPointso
// realtime listener const playersByPointsQuery = query( ref(db, 'usersPoints'), orderByChild('points'), ); const unsubscribe = onValue( playersByPointsQuery, { next: (playersByPointsQuerySnapshot) => { // new data available const playersByPoints = []; playersByPointsQuerySnapshot.forEach(childSnapshot => { playersByPoints.push({ ...childSnapshot.val(), _key: childSnapshot.key }); }); // todo: do something with playersByPoints }, error: (err) => { // error // todo: handle } } );