如何使用react.js中的WHERE查询计算Firebase Firestore中集合中的文档数量

mot*_*570 2 javascript firebase reactjs google-cloud-firestore

我想要获取我的 Firebase Firestore 集合中的用户总数。我可以通过编写以下代码轻松获得它:

const [totalUsers, setTotalUsers] = useState(0);
  const [newUsers, setNewUsers] = useState(0);

  useEffect(() => {
    firebase.firestore().collection("Users").get().then((querySnapshot) => {
      const TotalUsers = querySnapshot.size
        setTotalUsers(TotalUsers)

    })
  }, []);
Run Code Online (Sandbox Code Playgroud)

但我想要的是获得具有如下条件的用户总数:

   // 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)
      })
      

    })
  }, []);
Run Code Online (Sandbox Code Playgroud)

但上面的代码不起作用并且没有返回任何结果。

如何使用 where 查询获取 firebase firestore 中集合中的文档总数?

Fra*_*len 5

您已将计数操作移至循环中,这是不需要的

相反,只需将条件添加到读取操作中并保持其余部分相同:

useEffect(() => {
  firebase.firestore().collection("Users").where("usersID","!=","101010").get().then((querySnapshot) => {
    const TotalUsers = querySnapshot.size
    setTotalUsers(TotalUsers)
  })
}, []);
Run Code Online (Sandbox Code Playgroud)

请注意,读取所有用户文档只是为了确定其计数是一种昂贵的方法,因此我建议阅读有关聚合运算符的文档,以及 Dan 关于计算Cloud Firestore 集合计数中的文档的答案