esta función a continuación debería funcionar, sin embargo, estoy luchando para que funcione.
Quiero ir a Listings de colección y asegurarme de que cada listado sea de un Seller diferente
El campo único es sellerID .
Aquí está la función:
export async function getUniqueHomeListings(amount: number) { const listingsRef = collection(db, "listings"); let sellers = ["_"]; let dataArray = []; [...Array(amount)].map(async () => { console.log("SELLER IDS:", sellers); let q = query( listingsRef, orderBy("sellerID", "desc"), orderBy("date", "desc"), where("status", "==", "listed"), where("sellerID", "not-in", sellers), limit(1) ); const data = await getDocs(q); let tempData = data.docs[0].data() as ListingObject; if (!tempData) { return; } tempData.docID = data.docs[0].id; dataArray.push(tempData); sellers.push(tempData.sellerID); }); return { listings: dataArray, success: true, }; } Así que básicamente quiero darle una cantidad a una función y me devolverá esa cantidad de listings de vendedores únicos, o tantos como pueda en relación con el parámetro de amount .
El problema es que, cuando la consola registra la matriz de sellers dentro de la función .map() , solo contiene el "_", no la ID del vendedor, por lo tanto, el where("sellerID", "not-in", sellers) no funciona y me devuelve listados de vendedores duplicados.