使用 firebase.com 作为数据库的应用程序中的分页

2023-12-06

前端应用程序将使用 firebase.com 作为数据库。 应用程序应该像博客一样工作:

管理员添加/删除帖子。

有“主页”页面,每页显示多篇文章,带有“下一页”和“上一页”按钮,以及显示单篇文章的页面。

我还需要深层链接。 IE。当用户输入 URL 时http://mysite.com/page/2/当用户输入 URL 时,我需要该应用程序显示最后 10 到 20 篇文章http://mysite.com/page/20/应用程序显示最后的文章从 200 到 210。通常的分页。

主要问题 - 如果使用 firebase.com 是否可以实现这一目标。

我在 firebase.com 上阅读文档,在此处阅读帖子。 “offset()”和“count()”将在未来使用优先级,以便了解项目的数量并且不加载所有项目使用额外的计数器。

基于此我认为:

  • 添加帖子操作:

    1. 获取帖子计数器的值
    2. 设置新帖子数据的优先级等于帖子计数器的值
    3. 增加帖子计数器的值
  • 删除帖子操作

    1. 获取发布数据的优先级值
    2. 查询优先级值大于优先级的帖子数据,这些数据将被删除并减少其值
    3. 减少帖子计数器的值
  • 获取从 x 到 y 的帖子

    1. postsRef.startAt(null, x).endAt(null, y).on(... 等等)

我不喜欢这种方式的是删除帖子的操作。因为帖子索引将从 0 到无穷大,并且优先级较低的帖子被视为较早创建的帖子,所以如果我有 100000000 个帖子,并且如果我需要删除第一个帖子,那么我需要加载 99999999 个下一个帖子的数据并更新它们优先级(索引)。

还有别的办法吗?

提前致谢,康斯坦丁


正如你所提到的,offset() 将会到来,这会让你的工作变得更容易。

同时,您可以组合使用 startAt 和 limit 以确保始终获得 N 个结果,而不是组合使用 startAt 和 endAt。这样,将跳过已删除的项目。然后,您需要在转到下一页之前检查每个页面的最后一个 id,以找到合适的 id 开始。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 firebase.com 作为数据库的应用程序中的分页 的相关文章

随机推荐