Firestore无法从集合获取多文档:WHERE条件失效求助
问题排查与解决
核心原因
你的查询条件存在类型不匹配问题:
- 代码里写的是
.where("F_name", "==", true),把字段F_name和布尔值true做相等比较 - 但从数据库截图能看到,
F_name是字符串类型的用户姓名(比如示例里的"John"),字符串和布尔值永远不可能匹配,所以查询返回空结果,看起来就像代码“无法正常运行”
修复方法
根据你的实际需求修改WHERE条件:
- 如果要查询特定姓名的用户,把条件值改成对应字符串:
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"); } }
- 如果你本来是想查询某个布尔类型的字段(比如假设存在
isVerified这类字段),要确保字段名称和类型都和数据库结构对应
小提示
Firestore查询对数据类型严格校验,字符串、数字、布尔值之间不会自动转换。建议先单独打印某条文档的doc.data(),确认字段的实际类型和值后,再编写查询条件,避免类型不匹配的问题。
内容的提问来源于stack exchange,提问作者The.Kingslayer
相关产品推荐
相关产品推荐

