我想从 Firestore 收藏中选择不是由我撰写的文章。
真的有那么难吗?
每篇文章都有字段“owner_uid”。
就是这样:
我只想写相当于"select * from articles where uid<>request.auth.uid"
TL;DR:已经找到解决方案:语言/平台的用法:https://firebase.google.com/docs/firestore/query-data/queries#kotlin+ktx_5 https://firebase.google.com/docs/firestore/query-data/queries#kotlin+ktx_5
编辑 2020 年 9 月 18 日
火力基地发行说明 https://firebase.google.com/support/release-notes/js#version_7210_-_september_17_2020建议现在有not-in
and !=
查询。 (适当的文档 https://firebase.google.com/docs/firestore/query-data/queries#not_equal_现在可用。)
-
not-in
查找指定字段的值不在指定数组中的文档。
-
!=
查找指定字段的值不等于指定值的文档。
两个查询运算符都不会匹配不存在指定字段的文档。请务必参阅您语言的语法文档。
原答案
Firestore 不提供不平等检查。根据文档 https://firebase.google.com/docs/firestore/query-data/queries:
where() 方法采用三个参数:要过滤的字段、比较操作和值。比较可以是 或 >=。
不等式运算不像其他使用index https://firebase.google.com/docs/firestore/query-data/indexing。 Firestore 索引非常适合范围查询。使用这种类型的索引,对于不等式查询,后端仍然必须扫描集合中的每个文档才能得出结果,当文档数量变大时,这对性能非常不利。
如果您需要过滤结果以删除特定项目,您仍然可以在本地执行此操作。
您还可以选择使用多个查询来排除不同的值。像这样,如果您想要除 12 之外的所有内容。查询值 12,然后在客户端中合并结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)