javascript - 使用 Firebase 函数处理传入数据
问题描述
我正在使用 Firebase 实时数据库来存储测量的天气数据。(即温度、气压等)
假设每 15 分钟就有一个新值添加到我的数据库中。我想使用 Firebase 函数自动提取某些值(最大值、最小值、24 小时高/低等),因为我想在我的网站上显示这些值。这似乎是个好主意,因为通过这种方式,所有工作都将在后端完成,web-js-code 只会从我的数据库中获取值,而不是无休止地查询。
现在我不是 Firebase 函数方面的专家,并且在尝试让 Firebase 读取和比较所有这些值时遇到了一些麻烦。我的 db-tree 看起来像这样:
这个想法是使用 .onWrite 来监听新条目,例如,'weather/temps'
并将每个新条目与.onWrite 进行比较'history/extrema/maximum/temp'
。现在我真的不知道如何在更新它的值的函数中读取当前最大值。到目前为止,我的代码如下所示:
如何从数据库中的任何点读取函数中的数据并将其用于比较等?
解决方案
您需要异步获取“历史/极值/最大值/温度”,然后进行比较和设置。但这将是一项昂贵的操作并且需要时间!
在云函数中,您可以存储全局变量,它们将一直存在到函数超时。因此,如果您的函数有一段时间没有被调用,系统会破坏您的函数,并且您会丢失变量。
所以一个好办法是,如果全局变量,比如“maxTemp”为空,读取“history/extrema/maximum/temp”并将其存储在全局变量中,然后继续与新值进行比较,如果它更高,然后更新“maxTemp”变量和“history/extrema/maximum/temp”。
推荐阅读
- python - 拟合曲线似乎次优。如何解决这个问题?
- javascript - 在 html 中使用 ngFor 显示二维数组
- excel - 删除 VBA 中的隐藏行 - 但要在单元格中维护公式
- sql-server - SQL Server 计数相同结果聚合函数
- python - 试图从网站获取数据但没有来
- azure-active-directory - 如何使用 ms graph api 仅列出 AAD 中的特定组?
- javascript - 比较两个 JSON 对象并验证数据不匹配
- javascript - 带日期的 SQL 查询在节点 mssql 中返回日期时间
- php - 在 jenkins 容器中安装 php 和 composer
- ofx - 如何在 Power BI 中解析 a-ofx-version-1-0-2-file?