Не могу найти, почему Firebase.getFloat возвращает неправильное значение - PullRequest
1 голос
/ 09 января 2020
#include <FirebaseArduino.h>
#include <ESP8266WiFi.h>
#define FIREBASE_HOST "myproject07.firebaseio.com"
#define FIREBASE_AUTH "Xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvfig"
#define WIFI_SSID "xyz" 
#define WIFI_PASSWORD "12xxxxxx" 

float mv;
String fireStatus = ""; 
void setup() {
  Serial.begin(9600);
  WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
  Serial.print("Connecting to ");
  Serial.print(WIFI_SSID);
  while (WiFi.status() != WL_CONNECTED) {
    Serial.print(".\n");
    delay(500);}

  Serial.println();
  Serial.print("Connected to ");
  Serial.println(WIFI_SSID);
  Serial.print("IP Address is : ");
  Serial.println(WiFi.localIP());
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);

  Firebase.pushFloat("/Num/number", 42.0); 
  // handle error 
  if (Firebase.failed()) { 
      Serial.print("setting /number failed:"); 
      Serial.println(Firebase.error());   
      return; 
  } 

  Serial.print("number: "); 
  Serial.println(Firebase.getFloat("/Num/number")); 
  delay(1000);

}

void loop() {

}

Я не могу найти, что не так с этим кодом. Я использовал setFloat для установки значения и getFloat для получения значения. Это обновляет мою базу данных. Это означает, что он создает узел Num и устанавливает значение числа как 42, но когда я использую getFloat, он показывает 0.0. Я не знаю, как это решить.

1 Ответ

0 голосов
/ 09 января 2020

Насколько я могу судить, похоже, эта проблема Firebase.getFloat возвращает 0.0

Проверьте, можете ли вы получить значение в виде строки. Если так, то это ошибка, если нет, то обновите ваш вопрос.

Пример:

// You did your push then
Serial.print("number: ");
float f = Firebase.getFloat("/Num/number");
char err[] = Firebase.error();
Serial.println(f);
Serial.println(err);
delay(1000);
...