首页 > 解决方案 > 如何有效地从 Firebase 实时数据库中获取 7 天、30 天的摘要?

问题描述

在 firebase 数据库中,我创建了一个名为“orders”的数据库。要存储的数据具有以下格式:

{
    cost: orderCost,
    createdAt: createdAt,
}

在 firebase 中,树如下所示:

在此处输入图像描述

我想要实现的是根据createAt时间戳快速获取最近 7 天或 30 天的成本总和。

我想到的是创建索引createdAt,并基于它运行查询。

但是如果数据集很大,比如几百万个条目,运行上述查询是否仍然有效?

请提供您的建议。谢谢!

标签: firebase-realtime-database

解决方案


基本上你想要的是一个计数器/聚合。根据您需要摘要的粒度以及数据摄取/文档写入的速率,您将:

  1. 使用Cloud Function 触发器对成本总和进行每日聚合
  2. 如果数据量很大,请使用分布式计数器更新总和。

有了可用的每日汇总统计信息,您可以通过仅查询N个文档来进行任何临时的N天摘要。

如果您热衷于探索其他选项,还可以将 Firebase 中的数据推送到 BigQuery 等分析工具。


推荐阅读