我正在尝试设置一个firebase查询,它将为我实现分页。与此类似:https://www.firebase.com/blog/2013-10-01-queries-part-one.html#paginate
我的问题是当我尝试结合上面提到的三种方法时。例如,我的一个参考文件如下所示:userRef = ref.child('Users').orderByChild('email').startAt(null, end.id).limitToFirst(Number(limit))
所以我有我的用户列表。我想通过电子邮件按字母顺序排序。我希望这个新查询从旧查询的最后一个条目开始。最后,我想限制返回的孩子数量为4。
现在,当我将其中两个方法(例如startAt和limitToFirst)合并到其他列表中时,查询将按预期工作。不幸的是,这取决于已经在firebase中预先排序的列表。这个用户查询会发生什么,firebase只返回第一个限制子项数。它基本上忽略了startAt部分。我甚至尝试过用硬键来解决这个问题而忽略它。
我知道您可以通过使用indexOn规则告诉firebase对您的条目进行排序,如果我必须重建我的数据库,我将作为最后的手段(我在制作了一些用户后实现了indexOn)。但是我觉得这应该可以在没有indexOn的情况下工作,我不明白为什么它不应该。
我的数据结构如下:
Root:{
Users:{
01d1d38d-c780-4c5e-8537-a74432dea86e:{
email:example@gmail.com,
questions: {},
comments: {}
}
}
有没有办法正确完成此查询?有没有理由不通过这种方式构建查询?