【问题标题】:Firebase returning [object Object] on table and formFirebase 在表格和表单上返回 [object Object]
【发布时间】:2021-05-29 03:20:23
【问题描述】:

我有以下问题。代码识别出有东西并显示所有条目,但不显示内容,而仅显示 [object object]。我真的很想阅读“传感器”类别中的所有内容以及所有子类别。但现在我尝试阅读至少 1 个条目。非常感谢您的帮助。

<script type="text/javascript">
// var f_database    = firebase.database();
var f_database = firebase.database();
var statusSensor = f_database.ref("Sensor");
//value biasa
f_database.ref().on("value", function (snapshot) {
    var suhu = snapshot.child("Sensor/suhu").val();
    var kelembaban = snapshot.child("Sensor/kelembaban").val();
    var gas = snapshot.child("Sensor/gas").val();
    var tayam = snapshot.child("Sensor/tayam").val();
    var mayam = snapshot.child("Sensor/mayam").val();
    var hayam = snapshot.child("Sensor/hayam").val();



    document.getElementById("suhu").innerHTML = suhu + " °C";
    document.getElementById("kelembaban").innerHTML = kelembaban + " %/RH";
    document.getElementById("gas").innerHTML = gas + " PPM";
    document.getElementById("tayam").innerHTML = tayam + " Ekor";
    document.getElementById("mayam").innerHTML = mayam + " Ekor";
    document.getElementById("hayam").innerHTML = hayam + " Ekor";
});

// Dapatkan referensi table
var table = document.getElementById("table_monitoring").getElementsByTagName('tbody')[0];;

// Memuat Data
statusSensor.on("value", function (data, prevChildKey) {
    var newstatusAlat = data.val();

    var row = table.insertRow(table.rows.length);

    var cell1 = row.insertCell(0);
    var cell2 = row.insertCell(1);
    var cell3 = row.insertCell(2);
    var cell4 = row.insertCell(3);
    var cell5 = row.insertCell(4);


    cell1.innerHTML = newstatusAlat.nomor;
    cell2.innerHTML = newstatusAlat.tanggalwaktu ;
    cell3.innerHTML = newstatusAlat.suhu;
    cell4.innerHTML = newstatusAlat.kelembaban;
    cell5.innerHTML = newstatusAlat.gas;

});

这是实时数据库 Firebase 上的数据库 =

 { "Sensor" : {
"gas" : {
  "-MapyBUZwyPkJC0Dwkdj" : 2.5E-4,
  "-MapyBwvASH1_59zT4Qw" : 2.5E-4,
  "-MapyCQZ6fZD9U6xticz" : 1.5E-4,
  "-MapyEew16sK_m1dh-ri" : 0.00173,
  "-MapyK9ZCNI2CKkbojKq" : 2.5E-4,
  "-MapyRUwxgjkapEjKD_O" : 1.5E-4,
  "-MapyYa4Zuw1-uG14y2S" : 1.5E-4,
  "-MapyqHQfFDw6HczThU6" : 1.5E-4,
  "-Mapz77nFqvCk4WabOCH" : 1.5E-4
},
"hayam" : 3980,
"kelembaban" : {
  "-MapyBNg5dDL8Y8DETjR" : 89,
  "-MapyBqgX3L6cLeXKamR" : 86,
  "-MapyCKJHtOa4lW_6nIL" : 86,
  "-MapyEIZ658YxeygvTMk" : 87,
  "-MapyJlqji_CLunKn0GQ" : 88,
  "-MapyPBTkwbsSx_wCSST" : 86,
  "-MapyWI7yVBvayGIoFp6" : 86,
  "-MapylaqXdpZgrusRBDp" : 86,
  "-MapyuoHHtkRERpBNoom" : 86
},
"mayam" : 20,
"nomor" : 2,
"suhu" : {
  "-MapyBGo3XG_q_kN6wyD" : 29,
  "-MapyBkpClHVffMmVnMZ" : 29,
  "-MapyCD5yEiCXdb_1aos" : 29,
  "-MapyCkBd5njs67MIRYK" : 29,
  "-MapyH6r5WStcRHBJOF6" : 29,
  "-MapyMfBx_DEWLCKgEgg" : 29,
  "-MapyTvi80TsvZpQKJaa" : 29,
  "-MapyZZZEH3bfOHwJ3RE" : 29,
  "-MapysD9wiCqsMGw6245" : 29
},
"tanggalwaktu" : "2021-05-26 12:45:23",
"tayam" : 4000

} }

【问题讨论】:

  • 如果您正在获取 [object object],这意味着您正在获取数组或对象格式的数据,而不是字符串格式的数据。您需要使用 JSON.parse(property which give you object object) 说 JSON.parse(Sensor) 并显示属性值。
  • 如何将 JSON.Parse 放入我的代码中?
  • 您不需要显式解析它,但您需要处理代码中的结构。您可以编辑您的问题以在您的数据库中显示来自/Sensor 的数据吗?您可以通过单击Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。
  • 好的先生,我已经编辑了我的问题
  • 您能否编辑您的问题,以便 Firebase 结构可读而不是一长串文本?

标签: html firebase object firebase-realtime-database


【解决方案1】:

我已经在https://jsfiddle.net/z9o5tgch/1/复制了你的问题

var suhu = snapshot.child("Sensor/suhu").val();

console.log(JSON.parse(suhu)); // this will output the suhu property keys

参考 JSFIDDLE 例子,假设 degree 是属性键

document.getElementById("suhu").innerHTML = suhu.degree + " °C";

由于您的问题中未提及该属性,因此您需要放置通过控制台获得的正确属性键。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-06
    • 2018-09-30
    • 2023-03-05
    • 1970-01-01
    • 2012-03-02
    • 2020-04-12
    • 1970-01-01
    • 2018-02-26
    相关资源
    最近更新 更多