Uploading data to firebase using NodeMCU



  • Hello,
    I am trying to upload data to firebase but wasn't able to do it. I'm not able to understand the error.
    I wanted to update the value of NEW in firebase...
    Please refer to my code and firebase tree to solve the error.!!!

    68f72edb-2241-4e61-923d-1cd79b154718-image.png

    #include <ESP8266WiFi.h>
    #include <FirebaseArduino.h>       
    
    // Set these to run example.
    #define FIREBASE_HOST "syndinnovate-1.firebaseapp.com"
    #define FIREBASE_AUTH "AIzaSyAf**********-v7hKQe4uPbfUKHc"
    #define WIFI_SSID "Anudeep"
    #define WIFI_PASSWORD "Anudeep123"
    
    void setup() {
      Serial.begin(9600);
    
      // connect to wifi.
      WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
      Serial.print("connecting");
      while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
      }
      Serial.println();
      Serial.print("connected: ");
      Serial.println(WiFi.localIP());
      
      Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
    }
    
    int n = 0;
    
    void loop() {
      /*
      // set value
      Firebase.setFloat("number", 42.0);
      // handle error
      if (Firebase.failed()) {
          Serial.print("setting /number failed:");
          Serial.println(Firebase.error());  
          return;
      }
      delay(1000);*/
      
      // update value
      Firebase.setFloat("/NEW", 43.0);
      // handle error
      if (Firebase.failed()) {
          Serial.print("setting /number failed:");
          Serial.println(Firebase.error());  
          return;
      }
      delay(1000);
    /*
      // get value 
      Serial.print("number: ");
      Serial.println(Firebase.getFloat("number"));
      delay(1000);
    
      // remove value
      Firebase.remove("number");
      delay(1000);
    
      // set string value
      Firebase.setString("message", "hello world");
      // handle error
      if (Firebase.failed()) {
          Serial.print("setting /message failed:");
          Serial.println(Firebase.error());  
          return;
      }
      delay(1000);
      
      // set bool value
      Firebase.setBool("truth", false);
      // handle error
      if (Firebase.failed()) {
          Serial.print("setting /truth failed:");
          Serial.println(Firebase.error());  
          return;
      }
      delay(1000);*/
    
      // append a new value to /logs
      String name = Firebase.pushInt("/NEW", n++);
      // handle error
      if (Firebase.failed()) {
          Serial.print("pushing /logs failed:");
          Serial.println(Firebase.error());  
          return;
      }
      Serial.print("pushed: /logs/");
      Serial.println(name);
      delay(1000);
    }
    


  • May be "FIREBASE_HOST" have some error, try in this model "<YourProjectName>.firebaseio.com"
    Look this project : ( https://github.com/jagannathBhat/barish/tree/master/nodeWithFirebase)



  • Hi @Anudeep , Can you please share the error log details?

    If you are facing this error with the JSONBUFFER_SIZE like this

    lib\firebase-arduino-master\src\FirebaseObject.h:109:21: error: 'StaticJsonBuffer' was not declared in this scope
    std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_;
    

    this is might be using the latetst ArduinoJson lib , so downgrade Arduinojson to the version 5.13.2. It will fix the issue

    Sketch -> Include libraries -> Manage libraries

    Capture.PNG

    if the error persist please share the full error log so that we can understand it better .



  • Thanks, @salmanfaris, I have solved this error previously. But for me there is no error, code is getting uploaded smoothly but the data is not getting uploaded to the firebase!
    Do I have to change any settings in the firebase page? for uploading the data!!

    After uploading the code... I have the below log!!

    esptool.py v2.6
    2.6
    esptool.py v2.6
    Serial port COM4
    Connecting....
    Chip is ESP8266EX
    Features: WiFi
    MAC: 84:f3:eb:58:b5:b7
    Uploading stub...
    Running stub...
    Stub running...
    Configuring flash size...
    Auto-detected Flash size: 4MB
    Compressed 366560 bytes to 260548...
    
    Writing at 0x00000000... (6 %)
    Writing at 0x00004000... (12 %)
    Writing at 0x00008000... (18 %)
    Writing at 0x0000c000... (25 %)
    Writing at 0x00010000... (31 %)
    Writing at 0x00014000... (37 %)
    Writing at 0x00018000... (43 %)
    Writing at 0x0001c000... (50 %)
    Writing at 0x00020000... (56 %)
    Writing at 0x00024000... (62 %)
    Writing at 0x00028000... (68 %)
    Writing at 0x0002c000... (75 %)
    Writing at 0x00030000... (81 %)
    Writing at 0x00034000... (87 %)
    Writing at 0x00038000... (93 %)
    Writing at 0x0003c000... (100 %)
    Wrote 366560 bytes (260548 compressed) at 0x00000000 in 23.3 seconds (effective 126.0 kbit/s)...
    Hash of data verified.
    
    Leaving...
    Hard resetting via RTS pin...
    


  • Thanks, @rafitc99. But even this didn't solve my problem!!
    I have changed the code in the below format...

    #include <ESP8266WiFi.h>
    #include <FirebaseArduino.h>       
    
    // Set these to run example.
    #define FIREBASE_HOST "syndinnovate-1.firebaseio.com"
    #define FIREBASE_AUTH "AIzaS********************7hKQe4uPbfUKHc"
    #define WIFI_SSID "SSID"
    #define WIFI_PASSWORD "PASS"
    
    void setup() {
      Serial.begin(9600);
      delay(1000);                
      WiFi.begin(WIFI_SSID, WIFI_PASSWORD);                                     //try to connect with wifi
      Serial.print("Connecting to ");
      Serial.print(WIFI_SSID);
      while (WiFi.status() != WL_CONNECTED) {
        Serial.print(".");
        delay(500);
      }
      Serial.println();
      Serial.print("Connected to ");
      Serial.println(WIFI_SSID);
      Serial.print("IP Address is : ");
      Serial.println(WiFi.localIP());                                            //print local IP address
      Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);                              // connect to firebase                                                               //Start reading dht sensor
    }
    
    void loop() {                                                             //Convert RainSensr data into string
      
      Firebase.pushString("/NEW", "No");   
      delay(1000);//setup path and send readings
      Firebase.pushString("/NEW", "Yes");                                //setup path and send readings
      delay(1000);//setup path and send readings
    }
    


  • @Anudeep Ok , compilation part is clear .did you getting anything on the firebase side ? Any erros ?



  • @salmanfaris Nothing, No errors!!
    Do I need to change anything in Firebase settings or something?



  • @salmanfaris Thanks for the support!!
    I finally resolved the error. I have taken FIREBASE_AUTH as apiKey instead of Database secrets.



  • @Anudeep Great . Glad to know that it is solved , Keep hacking 🤖



  • @Anudeep Hello Anudeep could you please help me out by elaborating the fix to get rid of that error?
    Thanks in advance.


Log in to reply
 

Recent Posts