Tengo el campo DateFrom en firebase almacenado como una cadena "dd/mm/YY" (es decir, 20/05/2022)
Cuando trato de ordenar esto a través de:
useEffect(() => { const unsubscribe = firebase .firestore() //access firestore .collection("trips") .where("User", "==", user1) .orderBy("DateFrom", "asc") .onSnapshot(snapshot => { const listItemsTrips = snapshot.docs.map(doc => ({ id: doc.id, ...doc.data() })); setItems(listItemsTrips); }); return () => unsubscribe(); }, []); return items;devuelve en su mayor parte los resultados correctos, pero cualquier cosa asignada para decir 21/05/2023 seguirá apareciendo después de la fecha 20/05/2022. ¿Cómo ordeno este campo de cadena por fecha? (a través de firebase console, hacer una ordenación en el campo DateFrom también se muestra en este orden)
¿Parece estar ordenando por día y mes e ignorando el valor del año?
Debe guardar la fecha en firebase como marca de tiempo. Ejemplo:
yourRef .collection('you_colletcyion') .add({DateFrom: firebase.Timestamp.now()})Asi que
const unsubscribe = firebase .firestore() //access firestore .collection("trips") .where("User", "==", user1) .orderBy("DateFrom", "asc") Luego puede mostrar la fecha formateándola. Ejemplo con moment.js :
moment(user.DateFrom).locale('pt-br').format('LLL')