Google cloud firestore 使用Cloud Firestore order by date asc或desc按类别分页获取项目

Google cloud firestore 使用Cloud Firestore order by date asc或desc按类别分页获取项目,google-cloud-firestore,Google Cloud Firestore,我正在把一个Android应用程序改成Netflix。(显示项目的转盘列表)。 我的数据库是firebase平台中的云Firestore 这是我用来按日期描述或asc排序的类别显示项目的结构 { name: "Item", categories: { catId1: true, catId2: true, catId3: true } } 我遇到的问题是,我在那里看不到任何项目,因为我需要为每个catId创建索引(这对我来说毫无意义),而且最重要的是,我需要

我正在把一个Android应用程序改成Netflix。(显示项目的转盘列表)。 我的数据库是firebase平台中的云Firestore

这是我用来按日期描述或asc排序的类别显示项目的结构

{
  name: "Item",
  categories: {
    catId1: true,
    catId2: true,
    catId3: true
  }
}

我遇到的问题是,我在那里看不到任何项目,因为我需要为每个catId创建索引(这对我来说毫无意义),而且最重要的是,我需要分割结果以对请求进行分页。如何实现这一点?

对于您当前的数据模型,您所要求的不能通过一个查询有效地完成。您必须执行多个查询,并在客户端代码中加入/合并结果。这对于NoSQL数据库来说是非常典型的,唯一的解决方法是复制(非规范化)您的数据,以防止需要额外的查询。

嗨,道格,这不是我现在的模型。实际上,我使用的是项目中的类别。然而,这似乎不是一个好方法,因为我需要为创建的每个类别创建一个索引,以便让它们带来数据。这些索引不是为每个类别动态创建的。那我该怎么办呢?我不确定我的理解是否正确,但我想你可能在寻找这个:这就是我目前正在做的,但我正试图构建一些类似于Netflix在其主屏幕上所做的事情。类别将有项目,它们应按时间顺序或按名称排序。问题是,我必须创建索引,以便使用order进行查询。我的索引是类别的ID,这意味着对于创建的每个类别,我都需要一个索引,我还没有找到一种方法来创建它们,而不是手动创建每个类别。嘿,伙计们,我改变了问题,也许这样更容易理解我试图实现的目标。这些索引应该自动创建。在我之前链接的文档页面中:“这项技术依赖于云Firestore为所有文档字段创建内置索引,甚至是嵌套映射中的字段。”嗨,弗兰克,我不确定我是否明白你的意思。但是现在我收到了这个错误:com.google.firebase.firestore.firebaseforestoreexception:FAILED\u前提条件:查询需要索引。您可以在这里创建它:url?create_index=EGZLDMVUDHMAIWOFY2F0ZWDVCMLLCY5WAUJNOFZWNLVGZAYD2NJQXR4WHACGG0KCXN0YXJ0RGF0ZRACGGWKCF9FBMFTZV9FEAI