【发布时间】:2019-08-21 07:41:20
【问题描述】:
是否有将节点的所有值从 firebase 实时数据库中检索到 html 表中的解决方案?我想将物联网传感器数据从 Firebase 显示到 html 表中?每次在湿度中添加新值时,温度都会进入html表中的新行?它是如何实现的?
agrismart-c7cb0
.
.
--- ...Sensor
----- .Humidity
. -Ll1yRHBqZUSQUpAANYl: "64"
. -Ll1ySD9oG5fiia15eL0: "65"
. -Ll1yTrQnmS0T1ImusKQ: "68"
. -Ll1yVjd3wZi48jp9SB1: "65"
----- .Moisture
. -LlQz7gIlHBKWT66T2gS: "96"
. -LlQz80sa4qoOZvOSKPn: "95"
. -LlQz8IlfBnlIy0FQZoM: "99"
. -LlQz83LXAwr3FWqvmbN: "91"
----- .Temperature
. -Ll1yS8KchaePZcNypBG: "32"
. -Ll1yTmE4GM950mbXN0m: "33"
. -Ll1yVSn8vZ82UaPraSw: "36"
. -Ll1yX42I9gAWVm2B5yA: "38"
我已经尝试过这段代码,但我在 HTML 表中只得到了一行,它显示了湿度、温度和湿度节点的最后一个子值。控制台显示所有值,但它们在 HTML 表中只有一行。
(function() {
var dataHtml = '';
var tableBody = document.getElementById('tabledata');
var database = firebase.database();
var humElement;
var MoistElement;
var tempElement;
var humRef = database.ref('Sensor').child('Humidity');
var MoistRef = database.ref('Sensor').child('Moisture');
var tempRef = database.ref('Sensor').child('Temperature');
humRef.on("value", function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var childData1 = childSnapshot.val();
console.log("humidity: " + childData1);
humElement = childData1;
});
MoistRef.on('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var childData2 = childSnapshot.val();
console.log("Moisture: " + childData2);
MoistElement = childData2;
});
tempRef.on('value', function(snapshot) {
snapshot.forEach(function(childSnapshot) {
var childData3 = childSnapshot.val();
console.log("temperature: " + childData3);
tempElement = childData3;
});
$("#tabledata").append("<tr><td>" + humElement + "</td><td>" + MoistElement +
"</td><td>" + tempElement + "</td></tr>");
});
});
});
}());
我的html表格代码:
<table class="content-table" align="center">
<thead>
<tr>
<td >Humidity</td>
<td >Moisture</td>
<td >Temperature</td>
</tr>
</thead>
<tbody id="tabledata">
</tbody>
</div>
</table>
我的预期结果是:
Humidity | Moisture | Temperature
64 | 96 | 32
65 | 95 | 33
68 | 99 | 36
65 | 91 | 38
我已经检索到了什么
Humidity | Moisture | Temperature
65 | 91 | 38
我在控制台中得到了什么:
humidity:64
humidity:65
humidity:68
humidity:65
Moisture:96
Moisture:95
Moisture:99
Moisture:91
temperature:32
temperature:33
temperature:36
temperature:38
谁能告诉我我做错了什么?为什么我没有得到所有值而不是最后一个 chlid 值?有没有人解决这个问题。任何解决方案将不胜感激。
【问题讨论】:
-
我不明白问题出在哪里。您希望在控制台中获得什么输出?
-
@FrankvanPuffelen 我期望控制台中的输出与我现在得到的相同,但我在 html 表上没有得到预期的结果。
-
@FrankvanPuffelen 湿度、湿度和温度节点的所有子值都打印在控制台上,而我的 html 表只获取这些节点的最后一个子值。如何在 html 表格中显示所有值?
-
@FrankvanPuffelen 你能告诉我我在代码中犯了什么错误吗?
标签: javascript html firebase firebase-realtime-database