无法在 Firebase 网站中实现分页



增强功能

我希望能够在我的网站上进行分页。它的工作方式是,用户可以在主页上查看前10个问题,然后点击按钮翻到下一页,查看接下来的10个问题。他们也应该能够朝着相反的方向前进。

方法

据推测,在我的listenForQuestions函数中最好有两个参数,分别为pageNumber和pageLength。pageLnegth将是在给定页面上显示的问题数,pageNumber将是要转到的实际页码。我尝试过使用startAt,但这并不需要实际的值来限制,而只是按照我的意愿限制查询的前n个结果。

import { getAuth } from '@firebase/auth';
import {
collection,
doc,
getDoc,
getFirestore, limit, onSnapshot,
orderBy,
query,
where,
startAt,
endAt
} from '@firebase/firestore';
export function listenForQuestions(options, callback) {
let filters = [
where('answerAccepted', '==', false),
orderBy('bounty', 'desc'),
orderBy('postedTimestamp', 'desc'),
];

// filters.push(startAt(0), endAt(10)) // This doesn't seem to work???
onSnapshot(
query(collection(getFirestore(), 'questions'), ...filters),
(snapshot) => {
callback(snapshot.docs.map((doc) => doc.data()));
}
);
}

Firestore分页不是基于偏移量,而是基于光标——通常是上一页的最后一项。我建议查看Firestore关于使用游标分页的文档,或者之前关于使用Firestore分页的一些问题。

最新更新