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

317
Visualizações
Cómo consultar la base de datos en tiempo real entre un cierto rango

Estoy implementando el desplazamiento infinito usando Next.js y Firestore Realtime Database (v9.x).

Cuando el cliente solicita la página de inicio, el servidor obtiene las 4 imágenes más recientes de la base de datos y se las muestra al cliente. Cuando el usuario llega al final de la página, se deben buscar 4 imágenes más y así sucesivamente.

Esta es mi base de datos:

ingrese la descripción de la imagen aquí

Cada vez que un usuario agrega una nueva imagen, esa imagen se empuja al final de la lista, como una matriz/lista.

Para las primeras 4 imágenes que se obtienen en el lado del servidor y se envían/muestran al cliente, estoy usando este código:

 query(ref(db, 'latest_images'), limitToLast(4))

Este código está destinado a recuperar las últimas cuatro imágenes agregadas (las imágenes más recientes).

Ahora, en el lado del cliente, cuando el usuario llega al final de la página, este es el código que estoy usando para obtener 4 imágenes más:

 query( ref(db, `latest_images`), endBefore(lastImageID), // lastImagedID = "-MqZdzr7RTYpyujV6hnP" (w/ d. quotes) limitToLast(4), )

lastImageID almacena la cuarta clave de entrada de abajo hacia arriba en la imagen de la base de datos que se muestra arriba. Esta variable es un "ancla", por lo que el código sabe dónde comenzar a consultar las 4 imágenes siguientes.

Lo que esperaba del código anterior es que obtendría estas imágenes (delimitadas por las llaves rojas):

ingrese la descripción de la imagen aquí

Pero terminó obteniendo las mismas 4 imágenes que se obtuvieron inicialmente en el lado del servidor (delimitadas por las llaves azules).

De la documentación:

endBefore() Devuelve elementos menores que la clave o el valor especificados según el método de orden elegido.

limitToLast() Establece el número máximo de elementos que se devolverán desde el final de la lista ordenada de resultados.

https://firebase.google.com/docs/database/web/lists-of-data?authuser=0#filtering_data

about 4 years ago · Santiago Gelvez
1 Respostas
Responde à pergunta

0

Como discutimos en los comentarios, tendrá que decirle a la base de datos qué ordenar, antes de poder filtrar los datos. Dado que está filtrando las claves, agregar orderByKey() a su consulta garantizará que sepa filtrar las claves.

Presenté un error para aclarar esto en los fragmentos de documentación, ya que ahora es bastante fácil malinterpretarlo.

about 4 years ago · Santiago Gelvez 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