Firestore查询返回无目标字段文档问题求助(firebase-admin v9.0.0)
Firestore查询异常:
!= false返回无字段文档的解决办法 直接满足需求的查询方案
既然你的目标是仅获取r_o字段值为true的文档,直接使用精确匹配查询是最稳妥的方式,完全避免歧义:
const aRef = firebase.collection('ABC'); let querysnap = await aRef.where('r_o', '==', true).limit(50).get();
原查询异常的原因及替代方案
你遇到的where('r_o', '!=', false)返回无r_o字段文档的情况,大概率是firebase-admin v9.0.0版本的实现偏差。按照官方文档描述,!=查询本应排除不存在目标字段的文档,但旧版本可能存在逻辑漏洞。
如果后续有需要用不等查询的场景,可以通过组合条件强制过滤掉无字段的文档:
const aRef = firebase.collection('ABC'); let querysnap = await aRef .where('r_o', '!=', false) .where('r_o', '>', '') // 利用Firestore类型排序规则,确保字段存在(布尔值优先级高于空字符串) .limit(50) .get();
不过优先推荐使用== true的精确查询,逻辑更直观,查询性能也更优。
内容的提问来源于stack exchange,提问作者V Z
相关产品推荐
相关产品推荐

