ESP8266向Firebase推送DHT11数据时自动生成子节点问题求助
解决Firebase自动生成AutoChild的问题
嘿,这问题我熟!你现在用的Firebase.pushFloat()方法本身就是Firebase专门用来生成自动子节点的API,它会自动创建带时间戳的唯一ID作为子节点,用来存储多条不重复的时序数据。但你想要直接把数据写入指定路径、不生成自动子节点的话,只需要把pushFloat换成setFloat就可以啦!
修改后的代码示例:
int humidity = dht.readHumidity(); float h = dht.readHumidity(); float t = dht.readTemperature(); Serial.print("Current humidity = "); Serial.print(h); Serial.print("% "); Serial.print("temperature = "); Serial.print(t); Serial.println("C "); // 把pushFloat换成setFloat,直接写入指定路径 Firebase.setFloat("/devices/sensors/humid", h); // 如果需要写入温度,同理用setFloat // Firebase.setFloat("/devices/sensors/temp", t);
补充说明:
set系列方法(包括setFloat、setInt、setString等)的作用就是直接将值写入你指定的路径,如果该路径已有数据,会直接覆盖旧值,完全不会生成自动子节点。- 如果你之后需要存储历史数据(比如每10分钟的湿度记录、不想覆盖旧数据),再用
push系列方法就合适了,它会自动帮你生成唯一的子节点来区分每条记录。
内容的提问来源于stack exchange,提问作者kirimi
相关产品推荐
相关产品推荐

