【发布时间】:2020-07-07 06:57:14
【问题描述】:
我正在尝试向我的 Express + Firebase 实时数据库 SDK 添加一些分页功能,但我不确定如何实现这一点,documentation 对我没有帮助。此外,我发现的所有示例都与 Firestore 有关。
作为一个例子,我有这个模型 User 由database.ref('users') 访问。想象一下,我有 10 个用户,他们的 ID 分别从 1 变为 10,我想每页分页 5 个。
我的期望是得到键从 1 到 5 的用户,然后当有人点击第 2 页时,它会得到键从 6 到 10 的用户。
根据文档,我知道我应该添加如下内容:
(req, res) => {
const { key } = req.query;
let ref = database.ref('users')
.orderByChild('createdAt')
.limitToLast(5);
if (key) {
ref = ref.startAt(key);
}
ref.once('value')
.then(snapshot => ...);
}
到目前为止,我得到的是limitToLast() 和limitToFirst() 之间的区别在于排序,分别类似于ORDER BY createdAt DESC 和ORDER BY createdAt ASC。
如果我设置ref.startAt(5),则前面的代码不起作用,因为我得到了前五个用户(1 到 5)。
我应该使用什么方法?提前致谢。
编辑:
我知道如果我这样做 database.ref('users').orderByChild('createdAt').limitToLast(5).startAt(5) 我会得到 createdAt 大于 5 的文档,这是错误的。我应该在得到那些键在 5 旁边的文档后按日期排序。
【问题讨论】:
-
这个document 准确地描述了你想要什么。
-
@Eldar,如问题中所述,它展示了如何使用 Firestore 做到这一点,我需要实时数据库。
-
您找到解决方案了吗?我在努力大声笑
标签: javascript node.js firebase express firebase-realtime-database