Google cloud firestore 在Firestore中,如何使用特定的订单查询筛选文档? 背景

Google cloud firestore 在Firestore中,如何使用特定的订单查询筛选文档? 背景,google-cloud-firestore,nosql,Google Cloud Firestore,Nosql,我正在尝试在我的社交媒体应用程序上实现一个阻塞功能。目前,其中一个提要查询按创建的时间戳按时间顺序对文档进行排序/排序 提议的解决办法 为了在苹果应用商店上发布,我们需要实现一个阻塞功能。我认为很简单,在用户文档中创建一个具有“blockedUsers”字符串数组的字段。现在,当您查询该字段时,使用Firestore支持的not in操作符,您可以获得以下文档列表: 不在blockedUsers数组中 按completedTimestamp排序 出于分页原因将限制为x 问题 但是,在阅读了中

我正在尝试在我的社交媒体应用程序上实现一个阻塞功能。目前,其中一个提要查询按创建的时间戳按时间顺序对文档进行排序/排序

提议的解决办法 为了在苹果应用商店上发布,我们需要实现一个阻塞功能。我认为很简单,在用户文档中创建一个具有“blockedUsers”字符串数组的字段。现在,当您查询该字段时,使用Firestore支持的
not in
操作符,您可以获得以下文档列表:

  • 不在blockedUsers数组中
  • completedTimestamp排序
  • 出于分页原因将
    限制为x
问题 但是,在阅读了中的
中的
中的
的文档后,您不能按与正在筛选的比较字段不同的字段对文档进行排序。在这种情况下,
不在

问题: 我对如何在结构上实现一个阻塞特性有些不知所措,该特性将过滤GlobalPosts集合中的文档,不包括按时间顺序分页的阻塞用户


我很想听到任何建议的解决方案,不要担心,如果它破坏了我们当前的模式,它可能会培养出一些其他想法,但最好保持我们当前的模式。

将此作为社区维基发布,因为它基于Doug Stevenson对问题的评论:


由于您从文档中共享的限制,无论您如何构造数据,单次Firestore查询都不可能实现您所尝试的操作


因此,您需要将多个查询和一些客户端排序或筛选结合起来,这可能比您希望的更昂贵。

无论您如何构造数据,您尝试使用单个Firestore查询都是不可能的。至少,您将需要多个查询和一些客户端排序或过滤的组合。“它可能会比你想要的更贵。”DougStevenson感谢你的建议,一个简单的客户端过滤器能够处理我们的功能。