javascript - Firebase 过滤结果
问题描述
我有一个问题,我从实时数据库中读取了 1000 条最后记录,但我需要例如记录号 100,200,300... 我可以这样做吗?我要制作图表,例如,我希望每 10 次测量时才显示一次。我的数据库看起来像这样:
firebase.database().ref("Humidity").ref.orderByChild("time").limitToLast(1000).on("child_added",snapshot => {
解决方案
听起来您正在尝试构建基于偏移量的分页,首先显示最近的 100 条消息,然后显示接下来的 100 条,等等。这不是 Firebase 中分页的工作方式。
Firebase 上的分页遵循游标模型,并且基于知道锚节点。例如,如果您首先显示了 100 条最近的消息,那么您就知道所显示的最旧消息的时间戳和密钥。然后,您可以通过以下方式获取 100 条消息:
firebase.database().ref("Humidity")
.orderByChild("time")
.endAt(oldestTimeValue, oldestKey) // new
.limitToLast(100)
.on("child_added",snapshot => {
这个:
- 按节点的
time
值对节点进行排序。 - 查找其
time
isoldestTimeValue
和其键(通常是类似 的推送键-M...
)的oldestKey
节点(以防多个节点具有相同的time
值)。 - 然后取之前的 100 个节点。
推荐阅读
- javascript - React 的新 JSX 运行时让我的包变大了?
- wordpress - WooCommerce - 修改模板
- c++ - Boost Log V2 中的缩进消息
- java - 捕获的异常无法使用 Gradle 分发“https://services.gradle.org/distributions/gradle-3.0-bin.zip”执行构建
- android - ExpandableListView 与常规菜单项一起,在导航抽屉内,未正确显示
- python - 如何更新 Azure Device Twin 所需和报告的属性
- javascript - React:如何有效地制作我的组件,以便在道具更改时整个组件不会重新渲染?
- python - 如何从 Django 中的 bootrap 模态表单中读取输入?
- snowflake-cloud-data-platform - 使用 Snowflake 进行参数化查询并从 Snowflake .NET 连接器传递值
- .net - 命名空间“System.Windows”中不存在类型或命名空间名称“Forms”(您是否缺少程序集引用?)