【问题标题】:Is the firestore cloud database appropriate for specific queries?Firestore 云数据库是否适合特定查询?
【发布时间】:2021-11-08 03:36:52
【问题描述】:

在我的应用程序中,我需要通过多个键进行搜索,例如price between, equal city, area between 然后按添加日期对这些值进行排序。当我们想要过滤数据并对其进行排序时,使用 Firestore 云是一个不错的选择吗? 我阅读了文档,对 Cloud Firestore 中的限制数量感到惊讶

我知道可以使用索引,但是在一次过滤多个不同值的情况下,是否有意义?

编辑: 小例子:

并希望有一个带有过滤和选择每个值以及排序可能性的菜单,例如按报价的价格或日期。例如,用户想选择 50 到 80 之间的区域,城市等于 'NY' 等,然后按价格排序。

【问题讨论】:

  • 如果您使用示例文档的屏幕截图更新您的问题,然后解释您想要执行什么样的查询,那将是最好的。还可以根据城市、地区和价格范围查询文档。如果您需要在不同领域使用不​​等式,就会出现问题。
  • 这能回答你的问题吗? Flutter firestore compound query
  • 好的,我加了一个例子

标签: firebase flutter google-cloud-firestore


【解决方案1】:

Firestore 中的查询只能包含一个字段的范围条件,因此您无法同时过滤区域和价格。

请参阅 query limitations 上的 Firebase 文档,其中说:

在复合查询中,范围(、>=)和不等于(!=、not-in)比较必须都过滤同一字段。

【讨论】:

  • 实时数据库中是否存在相同的依赖关系?
  • 是的。 Firebase 数据库查询只能对单个属性进行排序/过滤。在许多情况下,可以将要过滤的值组合成单个(合成)属性。有关此方法和其他方法的示例,请在此处查看我的答案:stackoverflow.com/q/26700924。但在这种情况下,您也只能对一个值进行排序/范围过滤。在那里阅读我的答案可能会更好地解释为什么存在这个限制,所以我仍然建议这样做。
猜你喜欢
  • 2022-11-11
  • 2018-10-22
  • 1970-01-01
  • 2021-10-19
  • 2018-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多