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

247
Visualizações
Firestore: escuche documentos basados en diferentes eventos después de la nueva fecha ()

Introducción

Estoy implementando una pantalla "Mis chats". Me interesa escuchar todos los nuevos cambios en mis chats, sin descargar la colección completa.

Para ello, he decidido ordenar mis consultas por campos de fecha.

Así es como se ve un documento de sala de chat en mi sistema:

 doc { ... deletedAt: null | date, lastMessage: { ..., date: date, deletedAt: null | date, }, readAt: null | date, }

Código de oyentes

Tengo diferentes tipos de "eventos" que necesito escuchar:

  1. Escuche nuevas salas de chat (una nueva sala de chat contendrá, con seguridad, un campo lastMessage.date)

  2. Escuche las actualizaciones de chatRoom.readAt

  3. Escuche las actualizaciones de chatRoom.deletedAt

  4. Escuche lastMessage.deletedAt actualizaciones

  5. Escuche las nuevas actualizaciones de lastMessage.date

Para escuchar nuevos chats, estoy haciendo:

 firestore .collection("chats") .where("membersArray", "array-contains", currentUser.uid) .where("deletedAt", "==", null) .orderBy("lastMessage.date") .startAt(new Date()) .onSnapshot(...);

Y, para escuchar los cambios de "readAt", después de new Date() y sin la necesidad de descargar toda la colección, estoy haciendo:

 firestore .collection("chats") .where("membersArray", "array-contains", currentUser.uid) .where("deletedAt", "==", null) .orderBy("readAt") .startAt(new Date()) .onSnapshot(...);

Problema

Ambos oyentes funcionan bien. Pero... como necesito detectar todos los cambios en la misma pantalla, puede haber intersecciones entre los resultados de ambos oyentes.

Esta es la única manera que se me ocurre de escuchar los diferentes tipos de eventos de mi colección y de una fecha específica, sin tener que leer todos los documentos.

Pregunta

¿Hay alguna forma de evitar todas estas posibles intersecciones? ¿O escuchar todos estos eventos diferentes a la vez, sin necesidad de crear diferentes oyentes o leer la colección completa?

Nota: Estoy usando querySnapshot.docChanges() para obtener cambios.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Ambas consultas parecen leer exactamente el mismo conjunto de documentos, solo que en un orden diferente. En tal caso, normalmente leería los documentos con una sola consulta y luego los reordenaría según fuera necesario en el código de mi aplicación.

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