Javascript 组合orderByChild startAt和limitToFirst时的Firebase查询

Javascript 组合orderByChild startAt和limitToFirst时的Firebase查询,javascript,reactjs,firebase,firebase-realtime-database,Javascript,Reactjs,Firebase,Firebase Realtime Database,我正在尝试设置一个firebase查询,它将为我实现分页。与此类似: 我的问题是当我尝试结合上述三种方法时。例如,我的一个ref如下所示:userRef=ref.child('Users')。orderByChild('email')。startAt(null,end.id)。limitToFirst(Number(limit)) 所以我有我的用户列表。我想通过电子邮件按字母顺序排列。我希望这个新查询从旧查询的最后一个条目开始。最后,我想将返回的儿童数量限制为4 现在,当我在其他列表中仅组合这两

我正在尝试设置一个firebase查询,它将为我实现分页。与此类似:

我的问题是当我尝试结合上述三种方法时。例如,我的一个ref如下所示:
userRef=ref.child('Users')。orderByChild('email')。startAt(null,end.id)。limitToFirst(Number(limit))

所以我有我的用户列表。我想通过电子邮件按字母顺序排列。我希望这个新查询从旧查询的最后一个条目开始。最后,我想将返回的儿童数量限制为4

现在,当我在其他列表中仅组合这两种方法(如startAt和limitToFirst)时,查询会按预期工作。不幸的是,这取决于firebase中已预分类的列表。这个用户查询的结果是firebase始终只返回第一个限制数量的子项。它基本上忽略了startAt部分。我甚至尝试过用硬编码的方法来解决这个问题,结果被忽略了

我知道你可以告诉firebase使用indexOn规则对你的条目进行排序,如果我必须重建我的数据库,我会作为最后手段(我在创建了一些用户之后实现了indexOn)。但我觉得没有indexOn,这个应该可以工作,我不明白为什么不应该


我的数据结构如下所示:

Root:{ 
  Users:{
    01d1d38d-c780-4c5e-8537-a74432dea86e:{
      email:example@gmail.com, 
      questions: {}, 
      comments: {} 
    } 
  }

有没有办法正确地完成这个查询?我不能用这种方式构造查询是有原因的吗?

您能展示一个最小的数据结构和重现此问题的查询(都是文本,请不要截图)吗?这样我们就可以简单地尝试一下,看看发生了什么。也不是说
。indexOn
不仅仅是告诉服务器排序的一个选项。如果没有
.indexOn
,过滤将在客户端进行,如果没有
.indexOn
,过滤将在服务器上进行。所以:使用
.indexOn
。我的数据结构将如下所示:
根:{用户:{01d1d38d-c780-4c5e-8537-a74432dea86e:{电子邮件:example@gmail.com,问题:{},注释:{}
很抱歉,格式不正确。能否显示重现此问题的最小数据结构和查询(均为文本,请不要截图)?这样我们就可以简单地尝试一下,看看发生了什么。也不是说
。indexOn
不仅仅是告诉服务器排序的一个选项。如果没有
.indexOn
,过滤将在客户端进行,如果没有
.indexOn
,过滤将在服务器上进行。所以:使用
.indexOn
。我的数据结构将如下所示:
根:{用户:{01d1d38d-c780-4c5e-8537-a74432dea86e:{电子邮件:example@gmail.com,问题:{},注释:{}
很抱歉格式错误