Soy nuevo en Firebase v9 y parece que no puedo hacer que orderBy
funcione, pero cuando lo intenté en la consola de Firebase, puedo ver los resultados si tuviera que usar orderBy
error:
Error al obtener datos TypeError: no se pueden leer las propiedades de undefined (leyendo 'startAt')
useEffect(() => { const retrieve = async () => { const querySnapshot = await getDocs(collection(db, "orders")); const q = query(querySnapshot, orderBy("orderCreatedAt")); console.log(q, "q"); const arr = []; querySnapshot.forEach((doc) => { arr.push({ ...doc.data(), id: doc.id, }); }); if (isMounted) { setOrders(arr); } }; }, []);
en la consola de base de fuego:
Las funciones query() aceptan una instancia de Query para el primer parámetro. Esto puede ser proporcionado por la CollectionReference devuelta por collection()
.
Su problema es que le está pasando el resultado de getDocs()
que se resuelve con QuerySnapshot .
Creo que necesitas algo como esto.
const ordersRef = collection(db, "orders"); const q = query(ordersRef, orderBy("orderCreatedAt"); const querySnapshot = await getDocs(q);
Ver también
Recomiendo encarecidamente usar mecanografiado para evitar este tipo de problemas. Inmediatamente le habría dicho que su querySnapshot
original no era del tipo correcto para usar en query()
.