Quiero obtener la cantidad total de usuarios en mi colección Firebase Firestore. Puedo obtenerlo fácilmente escribiendo este código:
const [totalUsers, setTotalUsers] = useState(0); const [newUsers, setNewUsers] = useState(0); useEffect(() => { firebase.firestore().collection("Users").get().then((querySnapshot) => { const TotalUsers = querySnapshot.size setTotalUsers(TotalUsers) }) }, []);Pero lo que quiero es obtener el número total de usuarios con una condición como la siguiente:
// this is not working, its not showing any results back. useEffect(() => { firebase.firestore().collection("Users").where("usersID","!=","101010").get().then((querySnapshot) => { querySnapshot.forEach((doc) => { const TotalUsers = doc.size setTotalUsers(TotalUsers) }) }) }, []);Pero el código anterior no funciona y no devuelve ningún resultado.
¿Cómo puedo obtener la cantidad total de documentos en una colección en firebase firestore con una consulta where?
Ha movido la operación de conteo a un bucle, que no es necesario.
En su lugar, simplemente agregue la condición a su operación de lectura y mantenga el resto igual:
useEffect(() => { firebase.firestore().collection("Users").where("usersID","!=","101010").get().then((querySnapshot) => { const TotalUsers = querySnapshot.size setTotalUsers(TotalUsers) }) }, []);Tenga en cuenta que leer todos los documentos de los usuarios solo para determinar su recuento es una forma costosa de hacerlo, por lo que recomiendo leer la documentación sobre los operadores de agregación y la respuesta de Dan sobre el recuento de documentos en el recuento de colecciones de Cloud Firestore .