Estoy usando Vue y Firestore a través de Vuefire.
Quiero paginar los datos de 'Palabras incompletas' Y poder buscar. He logrado que ambos funcionen, pero no del todo independientemente el uno del otro.
Por el momento, el siguiente código pagina los datos con un límite de página de 2, PERO la búsqueda solo filtra aquellos que están en la página actual.
Me gustaría que la búsqueda filtre toda la matriz de IncompleteWords (y todavía pagina el conjunto resultante).
<v-text-field outlined placeholder="Search Incomplete Words" v-model="incompleteSearchBar" ></v-text-field> <v-card v-for="Incomplete in filteredIncomplete" :key="Incomplete"> <v-pagination v-model="page" :length="Math.ceil(IncompleteWords.length % pageLimit) + 1" @input="updatePagination()" ></v-pagination> export default { title: "Nouns", data() { return { page: 1, pageLimit: 2, IncompleteWords: [], IncompleteWordsSelection: [], incompleteSearchBar: "", async updatePagination() { this.IncompleteWordsSelection = [] for (var i = 0; i < this.pageLimit; i++) { this.IncompleteWordsSelection.push(this.IncompleteWords[(this.page - 1)+i]) } } firestore: { IncompleteWords: db.collection("Nouns").where("incomplete", "==", true) }, computed: { filteredIncomplete() { return this.IncompleteWordsSelection.filter((IncompleteWord) => { return IncompleteWord.english.match(this.incompleteSearchBar); }) } }Cualquier consejo es muy apreciado.
Además, esto actualmente lee todos los documentos de la colección de Firestore, ¿verdad? ¿Hay alguna forma en que pueda trabajar con Vuefire y la paginación de esta manera para obtener solo la página actual? Probé una solución personalizada, usando startAfter(), para obtener la página SIGUIENTE y enviar los resultados a una matriz para contener todo lo obtenido hasta el momento, pero si, por ejemplo, pasé de la página 1 a la página 3, todavía tendría que vaya a la página 2, de lo contrario no tendría forma de saber qué startAfter() elegir. Esto aún requeriría las mismas lecturas, ¿verdad? Desafortunadamente, no puedo ver una forma de evitar esto, pero cualquier sugerencia sería útil. Gracias