firebase Firestore:使用不等运算符进行多个查询的限制

tf7tbtn2  于 2023-03-24  发布在  其他
关注(0)|答案(1)|浏览(132)

有三个收益率,我需要拉约firestore.如果我需要解释我的查询详细;我应该得到上面的某个日期作为该项目的语言和喜欢的数量,以。
但是,虽然我几乎尝试了每一种组合,但我无法克服以下错误;

无效查询。所有带有不等式(〈、〈=、!=、not-in、〉或〉=)的where过滤器必须在同一字段上。

图像;

我不太懂索引。所以我愿意接受任何建议。

也,我不知道它是否会工作,但我想添加它作为一个说明;我只需要为orderby添加like查询。

eagi6jfj

eagi6jfj1#

正如控制台中显示的错误消息以及Firetore文档中所详细说明的“You can perform range(〈,〈=,〉,〉=)or not equals(!=)comparisonsonly on a single field”。在您的情况下,您在两个不同的字段上有一个〉=和一个!=子句。
没有任何解决方案,因为这是Firestore的限制(并且调整索引不会改变情况)。
您可以尝试调整数据模型以规避限制,但我认为在您的情况下,不可能有任何简单的数据模型调整。
可能的(但不理想的)方法的非详尽列表:

  • 为每个喜欢的数量创建一个子集合,并向相应的子集合发出多个请求并合并结果。
  • 将喜欢的数量限制为10个值(例如0,1,2,3,...,8,〉8),并使用array-contains-any运算符合并字段上的最多10个数组包含子句与逻辑OR组合。或限制为7个值(0,1,2,3,4,5,大于5)
  • 调整您的前端以科普Firestore功能。

相关问题