抱歉,我看到这个问题已经以不同的方式在这里提问了很多次,例如:
但是,没有一个答案真正解释了解决方案或易于理解。
此外,我参考了许多教程,例如:
- https://howtofirebase.com/firebase-data-structures-pagination-96c16ffdb5ca
- https://rexrainbow.github.io/phaser3-rex-notes/docs/site/firebase-firestore/#paginate
具体来说:
这是我迄今为止所做的:
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;
所以:
query = query.startAfter(startAfter);
的效果符合预期。
然而:
query = query.endBefore(endBefore)
并没有在那个文档之前结束,我认为它会一直结束到限制位置。