是否可以在 flutter firestore 中
- 选择不等于的地方?类似于 SQL 的东西:
SELECT * FROM tbl WHERE id != 2
- 选择不在哪里?类似于 SQL 的东西:
SELECT * FROM tbl WHERE id NOT IN [1,3,6]
在 firebase 文档页面上,他们有in and array-contains-any
但没有显示颤动的示例。
https://firebase.google.com/docs/firestore/query-data/queries https://firebase.google.com/docs/firestore/query-data/queries
不支持带有 != 子句的查询。在这种情况下,将查询拆分为大于查询和小于查询。例如,虽然不支持查询子句 where("age", "!=", "30"),但您可以通过组合两个查询来获得相同的结果集,其中一个查询带有子句 where("age", "", 30)。
Firestore 不支持 != 的直接等效项。支持的查询运算符为 或 >=,因此不存在“whereNotEqual”。
您可以测试某个字段是否存在,因为所有过滤器和排序依据都会隐式创建一个关于字段是否存在的过滤器。例如,在Android SDK中:
collection.orderBy("name")
将仅返回包含“名称”字段的行。
与显式比较一样,无法反转此查询以返回值不存在的行。
有一些解决方法。最直接的替换是显式存储 null 然后查询 collection.whereEqualTo("name", null)。但这有点烦人,因为如果您不从一开始就填充此数据,那么一旦您想要执行此操作,就必须回填现有数据。如果您无法升级所有客户端,则需要部署一个函数来填充此字段。
另一种可能性是观察到通常丢失的字段表明文档仅部分组装,可能是因为它经历了某种状态机或者是两种不重叠类型的联合。如果您明确记录状态或类型作为判别式,您可以查询该状态或类型,而不是查询字段不存在。当只有两种状态/类型时,这非常有效,但如果有很多状态,就会变得混乱。
source:
Cloud Firestore whereNotEqual https://stackoverflow.com/questions/47060968/cloud-firestore-wherenotequal
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)