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

  • WhatsApp Image 2020-09-26 at 9.28.51 PM.jpeg

    Hey guys, we are thrilled to announce the speaker Mr. Brian Douglas for our upcoming event organised by HackClub TIST as part of Hacktoberfest 2020. He will guide you through GitHub and the importance of Open Source contributions.

    Mr. Brian Douglas has been working as a Staff Developer Advocate at GitHub for the past three years and was fully on-board with us when we contacted him about the event.

    We at Hackclub TIST strongly believe in the power of collaboration and how even the smallest guidance can have a huge impact in the long run.

    So register now at http://hackclubtist.tech/hacktoberfest and lets git learning (pun intended).

    Friday October 2, 2020
    7:00 pm -9:30 pm IST

    read more
  • P

    @Anudeep Thanks a lot m8, I actually made a very silly mistake of including the https:// while entering FIREBASE_HOST, where I must have entered the Domain name alone and removed the https:// extension.

    Thanks again for replying that quick. Cheers.

    read more
  • A

    Hello @Palani, In the Firebase, there are two types of storage,

    Cloud Firestore (Very recent one & NoSQL database) Realtime Database (To which we upload the data using NodeMCU)

    In the Arduino Code, you can see that there is a variable named FIREBASE_AUTH.

    This variable should be assigned to the Database secret. This you can find in Project Settings -> Service accounts -> Database Secrets.

    My mistake is, i have mistakenly assigned thay to Web API key. This is found at Project Settings -> General.

    The error can also occur when u don't initialise a proper realtime database in Firebase. (This is not my case).

    read more
  • P

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

    read more
  • At Adobe, weโ€™re focused on bringing together the most intelligent, driven, diverse set of individuals and give them the freedom to nurture their intellectual curiosity. We provide them with the necessary resources and support to shape their ideas into tangible results.
    Through the Adobe India Women-in-Technology Scholarship, we are striving towards creating gender equality in science, technology and engineering domains by encouraging women to showcase their excellence in computing and technology and become future leaders and role models in the field.

    ๐—›๐—ผ๐˜„ ๐˜๐—ผ ๐—ฎ๐—ฝ๐—ฝ๐—น๐˜†?

    Applications must be submitted through their dedicated application portal which opens on August 20th, 2020 and will close on September 20th, 2020, 5 pm India time.

    ๐—”๐—ฝ๐—ฝ๐—น๐—ถ๐—ฐ๐—ฎ๐˜๐—ถ๐—ผ๐—ป ๐—ฑ๐—ฒ๐—ฎ๐—ฑ๐—น๐—ถ๐—ป๐—ฒ:

    Application deadline: September 20th, 2020, 5 pm India time.

    Visit:- https://research.adobe.com/adobe-india-women-in-technology-scholarship/

    read more