Firestore查询grade字段异常:无法获取全部符合条件记录求助
Firestore查询grade字段仅返回1条记录的排查方案
检查字段类型匹配性
Firestore查询是类型严格匹配的,代码里你用的是数字10,如果数据库中grade字段实际存的是字符串"10",就会导致大部分匹配项被过滤。登录Firestore控制台,查看对应文档的grade字段类型,确保是number类型,和代码中的查询值类型一致。确认集合路径正确性
检查代码中查询的集合名是否准确,比如是否误写为user而非users,或者是否查询了嵌套子集合而非根集合下的users。排查安全规则限制
Firestore的安全规则可能会拦截你无权访问的文档。可以临时将安全规则改为开放(仅用于测试,生产环境务必改回):rules_version = '2'; service cloud.firestore { match /databases/{database}/documents { match /{document=**} { allow read, write: if true; } } }修改后重新执行查询,如果能获取到3条记录,说明是安全规则限制了读取权限,需要调整规则以允许读取符合条件的
users文档。强制从服务器获取数据
本地缓存可能未同步最新数据,尝试强制查询从服务器拉取:result = await FirebaseFirestore.instance .collection("users") .where("grade", isEqualTo: 10) .limit(3) .get(const GetOptions(source: Source.server));同时确认Firestore控制台中的目标文档是已提交状态,而非未保存的草稿。
内容的提问来源于stack exchange,提问作者Rishabh
相关产品推荐
相关产品推荐

