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

205
Visualizações
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 Respostas
Responde à pergunta

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 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