Obtener datos de Firebase está bien, pero cuando envío datos, quiero que los últimos datos estén después del último elemento de la matriz, pero no sé cuál es el orden predeterminado, pero el orden no es el que quiero:
[a,b,bc] sus datos se obtienen de firebase cuando envío c y d parece
[c,a,b,bc] o [c,a,d,b,bc] como cuál es el orden predeterminado que no entendí
quiero como:
[a,b,bc,c] o [a,b,bc,c,d]
Obtener datos de base de fuego
db.collection("messages").onSnapshot((snap) => { let messages = []; snap.docs.forEach((doc) => { messages.push({ ...doc.data(), id: doc.id }); }); console.log(messages); setmessge(messages); });Enviar datos a firebase
const dataInput = { date_time: new Date().toLocaleString(), message, sender_id: userId, }; db.collection("messages").add(dataInput);La documentación de Firebase establece claramente cómo se devuelven los documentos de consulta coincidentes en función de su orden ascendente de ID :
De forma predeterminada, una consulta recupera todos los documentos que satisfacen la consulta en orden ascendente por ID de documento.
Puede especificar un criterio orderBy en las referencias de su colección al recuperar datos para ordenarlos según los criterios:
db.collection("messages") .orderBy("date_time") .onSnapshot((snap) => { // ... });