Estaba siguiendo las pautas que proporciona Firebase y me encontré con este error.
const [orders, setOrders] = useState([]);
useEffect(() => {
const getData = async () => {
if (user) {
const collRef = getDocs(db, "users", user?.id);
const orderedRef = query(collRef, orderBy("created", "desc"));
const docSnap = await onSnapshot(orderedRef);
setOrders(docSnap);
orders.map((doc) => ({
id: doc.id,
data: doc.data(),
}));
} else {
setOrders([]);
}
};
getData();
}, [user]);
y obtengo esto
Orders.jsx: 36 No detectado (en promesa) FirebaseError: se esperaba el tipo 'Ea', pero era: un objeto Na personalizado
--ACTUALIZAR--
Solo quería señalar que soy nuevo en firebase y estaba siguiendo una guía de video de hace un par de años y no estaban usando el estilo modular v9.
De su video, su código es el siguiente:
useEffect(() => {
if(user) {
db
.collection('users')
.doc(user?.uid)
.collection('orders')
.orderBy('created', 'desc')
.onSnapshot(snapshot => (
setOrders(snapshot.docs.map(doc => ({
id: doc.id,
data: doc.data()
})))
))
} else {
setOrders([])
}
}, [user])
Estoy tratando de emular esta función usando el estilo modular v9 pero tengo algunos problemas.
si está utilizando una consulta, no es necesario utilizar getDocs. Puede consultar esta documentación para ver ejemplos .
Código de muestra:
const collRef = collection(db,"users","user?.id","orders")
const orderedRef = query(colRef, orderBy("created", "desc"));
onSnapshot(orderedRef, (querySnapshot) => {
setOrders(
querySnapshot.docs.map((doc) => ({
id: doc.id,
data: doc.data(),
}))
);
});