Tengo un problema con Firestore al consultar datos. Tengo una colección llamada conversations . Dentro de cada documento de conversación, hay una colección llamada messages . Cada mensaje tiene un campo time , que es una marca de tiempo.
¿Cómo consulto un grupo de colección para obtener el mensaje más reciente en cada conversación?
Estoy usando el SDK para la web, versión 9.
Eso no parece ser posible con una consulta de grupo de colección. El uso .orderBy() ordenará todos los documentos en la subcolección de mensajes. Es posible que deba obtener una lista de todas las conversaciones de los usuarios y luego obtener el último mensaje de cada conversación individualmente.
Tenga en cuenta que el uso .collectionGroup('messages') buscará documentos en todas las colecciones nombradas como mensajes, incluidos otros usuarios. Así que asegúrate de tener algunos filtros allí.
Puede almacenar el último mensaje en el documento de conversación, pero eso generará una escritura adicional cada vez que se agregue un nuevo mensaje.