首页 > 解决方案 > 从随机生成的 firebase 数据库子同步对象更改

问题描述

我从安装在 Raspberry Pi 中的 DHT22 传感器获取实时数据更新到 firebase 数据库。我的目标是使用收到的数据实时更新网页。我似乎无法理解如何访问孩子的值(其密钥是随机生成的)

数据库结构

      // Get a reference to the database service
  var database = firebase.database();

  // Get element from the DOM
  const tempElement = document.getElementById('temperature');
  const humElement = document.getElementById('humidity');

  // Create temperature database reference
  const tempRef = database.ref('DHT22').child();
// Sync objects changes
   tempRef.limitToLast(1).on('value', function(snapshot) {
      snapshot.forEach(function(childSnapshot) {
          var childData = childSnapshot.val();
          console.log("temperature: " + childData);
          tempElement.innerText = childData;
      });
  });

标签: javascriptfirebasefirebase-realtime-database

解决方案


要访问密钥内的数据,请尝试以下操作:

  const tempRef = database.ref('DHT22');
 tempRef.limitToLast(1).on('value', function(snapshot) {
      snapshot.forEach(function(childSnapshot) {
          var childData = childSnapshot.val().Date;
          var timeData  = childSnapshot.val().Time;
          var temp      = childSnapshot.val().Temperature;
          tempElement.innerText = childData;
      });
  });

在节点上添加一个引用,DHT22然后forEach在随机生成的密钥内部循环使用并检索数据。


推荐阅读