首页 > 解决方案 > 如何从 Firebase 构建和获取时间序列数据

问题描述

我在 Firebase 中有一个实时数据库,格式如下:

Firebase 数据结构

我正在使用 javascript 来获取数据并将其绘制在我的网络浏览器上。问题是我无法从中获取任何数据。发现了一些代码,它们通常会得到一个值,而不是基于时间序列的数据。我正在使用的当前获取过程是:

firebase.database().ref('edge-data').limitToLast(40).on('value', ts_measures => {

    let timestamps = [];
    let values = [];

    ts_measures.forEach(ts_measure => {
        console.log(ts_measure.val().timestamp, ts_measure.val().value);
        timestamps.push(moment(ts_measure.val().timestamp).format('YYYY-MM-DD HH:mm:ss'));
        values.push(ts_measure.val().value);
    });

    myPlotDiv = document.getElementById('myPlot');


    const data = [{
        x: timestamps,
        y: values
    }];

我的情节打开但仍然是空的,尽管它似乎可以识别日期间隔。我不确定我的实时数据库现在的结构是否是最好的选择,但在此过程中的任何帮助都将非常有价值。

谢谢!

标签: javascriptfirebase-realtime-databasereal-time

解决方案


我的 .js 文件中的这个更改解决了所有问题:

ts_measures.forEach(ts_measure => {
        console.log(ts_measure.val());
        timestamps.push(moment(ts_measure.val().timestamp).format('YYYY-MM-DD HH:mm:ss'));
        values.push(ts_measure.val().temperatura);
    });

推荐阅读