You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firestore无法从集合获取多文档:WHERE条件失效求助

问题排查与解决

核心原因

你的查询条件存在类型不匹配问题:

  • 代码里写的是.where("F_name", "==", true),把字段F_name和布尔值true做相等比较
  • 但从数据库截图能看到,F_name是字符串类型的用户姓名(比如示例里的"John"),字符串和布尔值永远不可能匹配,所以查询返回空结果,看起来就像代码“无法正常运行”

修复方法

根据你的实际需求修改WHERE条件:

  1. 如果要查询特定姓名的用户,把条件值改成对应字符串:
const test = () => {
  try {
    dob.collection("users")
      .where("F_name", "==", "John") // 替换成你要查询的具体姓名
      .get()
      .then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
          console.log(doc.id, " => ", doc.data());
        });
      })
      .catch((error) => {
        console.log("Error getting documents: ", error);
      });
  } catch {
    console.log("Erroror");
  }
}
  1. 如果你本来是想查询某个布尔类型的字段(比如假设存在isVerified这类字段),要确保字段名称和类型都和数据库结构对应

小提示

Firestore查询对数据类型严格校验,字符串、数字、布尔值之间不会自动转换。建议先单独打印某条文档的doc.data(),确认字段的实际类型和值后,再编写查询条件,避免类型不匹配的问题。

内容的提问来源于stack exchange,提问作者The.Kingslayer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 23:55:13