Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

200
Vistas
Cuota de lectura en firebase firestore

Así que tengo un caso de uso bastante simple:

Tengo una aplicación simple con preguntas (almacenadas en Firestore) y quiero que los usuarios puedan filtrar las preguntas antes de comenzar un ejercicio.

En este momento son solo 100 preguntas (pero eventualmente podría crecer a más de 1000) Algunos días tengo más de 100 usuarios (pero eventualmente podría crecer a más de 1000)

Para filtrar las preguntas, recibo todas las preguntas de firestore:

 const fetchAllQuestions = async (): Promise<Question[]> => { const q = query(collection(fireStore, "questions")); const querySnapshot = await getDocs(q); const questions: any = []; querySnapshot.forEach((doc) => questions.push(doc.data())); return questions as Question[]; };

y luego aplico el filtro.

Pero este es un documento leído por usuario y pregunta, por lo que 100 preguntas y 100 usuarios se convierten en 10000 lecturas de documentos, consumiendo la cuota en solo 5 días. Y ese es el mejor de los casos sin recargas de página o invalidaciones de caché.

Y menos viable aún si la página crece en contenido y uso.

Dado que "filtrar solo un subconjunto de preguntas" no es una opción, veo algunas formas de evitar esto:

a) Almacenar en caché el resultado en el almacenamiento local, esto cubriría las recargas de página y los visitantes que regresan, pero necesitaría invalidar la clave de almacenamiento al actualizar las preguntas, y aún alcanzaría la cotización después de 500 visitantes únicos.

Además, se siente como un "truco".

b) Simplemente ponga TODAS las preguntas en un solo documento, o córtelas y tenga 100 por documento o algo similar. Básicamente, esto resolvería el problema, ya que de todos modos no busco preguntas individuales. Cargar preguntas sería un poco más engorroso ya que necesito buscar todo el grupo, luego actualizar la pregunta y luego cargar todo como un gran documento.

Aún así, también se siente un poco como un "truco".

Entonces, no puedo evitar sentir que hay algo que me estoy perdiendo aquí, ¿alguna forma "idiomática" de Firestore de manejar este caso de uso que debo haber perdido?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Quizás deberías

  1. Guarde sus preguntas como JSON y asegúrese de guardar sus palabras clave o etiquetas para que pueda filtrar sus preguntas según las etiquetas. En su aplicación, puede mostrar esas etiquetas y hacer que el usuario haga clic en ellas para filtrar
  2. Ok, creo que guardar en fragmentos por documentos no es estable, ya que es posible que no sepa cómo consultarlos correctamente
  3. Luego puede usar los cursores para obtener sus preguntas por página: siga esto: https://firebase.google.com/docs/firestore/query-data/query-cursors
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda