Jim*_*ane 3 pagination firebase angular google-cloud-firestore
抱歉,我已经多次以不同的方式问过这个问题,例如:
但是,没有一个答案能真正说明解决方案或可以理解。
我也浏览了很多教程,例如:
详细说明:
所以这是我到目前为止所做的
let query = ref.orderBy(orderBy, asc ? 'asc' : 'desc').limit(limit);
if (startAfter) {
// Thiis works as it should
query = query.startAfter(startAfter);
}
if (endBefore) {
// This here does not work or give the correct results. I get the first page.
query = query.endBefore(endBefore);
}
return query;
Run Code Online (Sandbox Code Playgroud)
所以:
query = query.startAfter(startAfter); 可以正常工作。
然而:
query = query.endBefore(endBefore) 在该文件之前没有结束,我认为它已经达到了极限。
Jef*_*D23 22
由于firebase@7.3.0您可以使用该Query.limitToLast(n: number)方法 - 使用分页数据向后移动变得更加容易。
您的实现细节可能如下所示:
function nextPage(last) {
return ref.orderBy('age').startAfter(last.age).limit(3);
}
function prevPage(first) {
return ref.orderBy('age').endBefore(first.age).limitToLast(3);
}
Run Code Online (Sandbox Code Playgroud)
所以我认为我是通过受上述github问题启发的评论解决了这个问题:
假设您有这个数组并且您正在升序排序
A,
B,
C,
D,
E,
F,
Run Code Online (Sandbox Code Playgroud)
您有2个结果的页面限制
然后,当您进入第三页时,
E,
F
Run Code Online (Sandbox Code Playgroud)
现在您需要转到上一页,您需要做的是:
[F,E,D,C,B,A]E ,那就是[D,C][C,D]| 归档时间: |
|
| 查看次数: |
499 次 |
| 最近记录: |