Tengo un sistema de chat en el que un chat contiene varios mensajes. La estructura se ve así a continuación:
- messages - ChatId123 - MesageId123 - MessageId456 Solo quiero recuperar el último mensaje enviado en este caso MessageId456 Supongo que necesito usar orderByKey() . Las claves se generan usando push() ¿cómo puedo consultar y filtrar correctamente el último elemento?
const query = query(ref(db, `messages/ChatId123`), orderByKey()) return queryla forma más fácil sería agregar un campo de marca de tiempo en el objeto del mensaje como "SendAt" y ordenar por este valor:
const q = query(ref(db, `messages/ChatId123`), orderBy("SendAt", "desc"), limit(1));Puede usar limitToLast para obtener solo los últimos elementos de una consulta:
query(ref(db, `messages/ChatId123`), orderByKey(), limitToLast(1))Para obtener más información sobre esto, consulte la documentación de Firebase sobre el filtrado de datos .