Estoy tratando de ordenar por precio en ambas direcciones. Sin embargo, actualmente solo funciona "desc" y no "asc".
La variable 'dirección' se establece en "asc" o "desc" según el clic del botón. Lo he comprobado, definitivamente es asc o desc.
La solicitud devuelve 50 elementos en "desc", pero devuelve una matriz vacía en "asc". Seguramente esto no tiene sentido, ya que es la misma solicitud que lee los mismos datos solo en otra dirección.
const reference = await query( collection(firestore, "assets"), where("status.locked", "==", true), orderBy("status.price", direction), limit(count), startAfter(lastVisible?.status?.price ?? "") );Así es como se inicializa la dirección: (el filtrado es "Alto a bajo" o "Bajo a alto")
let direction = filtering === "High to Low" ? "desc" : "asc";Como descubrimos en los comentarios, el valor de lastVisible no es correcto para una ordenación ascendente en su caso.
Dado que está utilizando startAfter(lastVisible?.status?.price ?? "") , deberá encontrar el objeto lastVisible invertido cuando invierta el orden de clasificación. Alternativamente, puede invertir la lógica y usar endBefore en su lugar.