【问题标题】:How To Count Number of Documents in a Collection in Firebase Firestore With a WHERE query in react.js如何使用 react.js 中的 WHERE 查询计算 Firebase Firestore 中集合中的文档数
【发布时间】:2022-10-21 01:15:26
【问题描述】:

我想获取我的 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)

    })
  }, []);

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

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

    })
  }, []);

但是上面的代码不起作用,也没有返回任何结果。

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

【问题讨论】:

标签: javascript reactjs firebase google-cloud-firestore


【解决方案1】:

您已移动计数操作进入一个循环,这是不需要的。

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

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

请注意,阅读所有用户文档以确定其计数是一种昂贵的方法,因此我建议阅读aggregation operators 上的文档,以及Cloud Firestore collection count 中 Dan 对计数文档的回答

【讨论】:

    【解决方案2】:

    Firestore 刚刚推出了原生 COUNT 运算符。更多信息请参考官方documentation。你也可以参考这个blog

    【讨论】:

      猜你喜欢
      • 2018-07-10
      • 2021-04-24
      • 1970-01-01
      • 2020-05-08
      • 2021-04-24
      • 2018-10-21
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多