My data model:
A Trip has a sub collection Rides and references the trip with tripId
A ride has an experience: string which I'd like to filter on.
So I thought to query the SubCollection Rides
export const getTripsByExperience = async (experience: EXPERIENCES) => {
const ridesQuery = query(
collectionGroup(db, 'rides'),
where('experience', '==', experience)
);
const querySnapshot = await getDocs(ridesQuery);
let trips: Trip[] = [];
querySnapshot.forEach(async (rideDoc) => {
const ride = rideDoc.data();
const tripSnapshot = await getDoc(doc(db, 'trips', ride.id));
trips.push({ ...tripSnapshot.data(), id: tripSnapshot.id });
});
return trips
}
When I console.log this out right after trips.push trips.length gets incrementally bigger, but when the loop finishes, the function returns an empty array
What is the right approach here to get the trips filtered by rides.experience?