Tengo colecciones de usuarios donde cada ID de documento es el uid y los documentos tienen 2 campos: user_name y team_id . Tengo otra colección de equipos donde cada ID de documento se genera aleatoriamente y los documentos tienen 2 campos: team_name y team_id (la ID generada aleatoriamente).
Estoy usando el enrutador de reacción y useParams en un nombre de equipo para un componente. Me gustaría consultar la colección del equipo para ver qué documento tiene team_name igual al nombre del equipo que se pasa. Luego, me gustaría obtener el team_id del documento que tiene ese nombre de equipo y usarlo para consultar la colección de usuarios para la que los usuarios tienen ese team_id .
Sé que si puedo obtener el team_id, entonces puedo hacer algo como:
const queryRef = query( collection(db, 'users'), where('team_id', '==', team.id) ); const [users] = useCollectionOnce(queryRef);y luego dentro de mi retorno hacer algo como:
{videos.docs.map((user) => { const data = user.data(); const userName = data.user_name; return ( // display userNames in some way ); })}Me preguntaba cuál es la mejor manera de obtener el valor team_id del valor team_name o si hay otras formas mejores de obtener la lista de usuarios.
Lo que está haciendo actualmente es una forma bastante sencilla de manejar esta situación. Primero obteniendo la ID del equipo por nombre de equipo y luego consultando a los usuarios con esa ID de equipo.
Una forma de eliminar la primera consulta es usar el ID del equipo en la URL para que pueda consultar directamente a los usuarios, pero la URL no será muy fácil de usar. Además, puede intentar formatear su URL como lo hace StackOverflow. Tiene ID de pregunta (que es obligatorio) pero también tiene título de la pregunta para que los usuarios puedan obtener algún contexto de URL. Sin embargo, el título no es necesario y la URL funciona siempre que esté presente el ID de la pregunta.