así que tengo estos ID de documentos: https://i.stack.imgur.com/APlE3.png Estos son básicamente grupos de usuarios.
Tengo una colección como:
fire.firestore() .collection("groupsCategory") .doc(groupID) .collection('events') .doc(eventID) .collection('memberPicks') .doc(currentUserID)entonces, con mi matriz de objetos, estoy tratando de hacer un ciclo for que verifique si el ID de usuario actual está en cada uno de los ID de grupo de la colección anterior. Mi lógica if está desactivada y no estoy seguro de cómo hacerlo. ¿Está bien este enfoque o hay una mejor manera de recorrer la matriz de objetos de ID de grupo y verificar si la ID es el nombre del documento para determinar si un usuario ha elegido sus opciones?
for (let i = 0; i < groupsArray.length; i++) { await fire.firestore() .collection("groupsCategory") .doc(groupsArray[i]) .collection('events') .doc(eventID) .collection('memberPicks') .onSnapshot((querySnapshot) => { querySnapshot.forEach((doc) => { if } }Por lo que entiendo, lo estás haciendo bien. Solo tiene que continuar verificando si los documentos en la colección memberPicks tienen la misma ID con groupsArray . Vea el código a continuación:
// Used `foreach` instead of `for` loop for ease of reading. groupsArray.forEach(async (groupId) => { await fire.firestore() .collection("groupsCategory") .doc(groupId) // If the groupId does not exist, the query just ignores them. .collection('events') .doc(eventID) .collection('memberPicks') .onSnapshot((querySnapshot) => { querySnapshot.forEach((doc) => { if (groupsArray.includes(doc.id)) { // `memberPicks` document is in the `groupsArray` console.log(doc.id, 'true'); } else { // `memberPicks` document is not in the `groupsArray` console.log(doc.id, 'false'); } }) }) })