Search code examples
firebase-realtime-databaseiotnodemcuarduino-esp8266

Arduino IDE Multiple Libraries were found for Firebase


I'm trying to establish the connection of NodeMCU v3 with Google Firebase. However I'm encountering multiple libraries error. I had made sure that no library is present in sketch folder. I had only installed them using add .ZIP option.

Here is my code:

#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
// Set these to run example.
#define FIREBASE_HOST "example.firebaseio.com"
#define FIREBASE_AUTH "token_or_secret"
//Change line with your WiFi router name and password
#define WIFI_SSID "SSID"  
#define WIFI_PASSWORD "PASSWORD"

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("number", 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("logs", 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);
}

The error log as per IDE is:

In file included from C:\Users\Raffay Sajjad\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:30:0,
                 from C:\Users\Raffay Sajjad\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseArduino.h:22,

                 from C:\Users\Raffay Sajjad\Documents\Arduino\WiFi_Connection\WiFi_Connection.ino:2:

C:\Users\Raffay Sajjad\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseObject.h:109:11: error: StaticJsonBuffer is a class from ArduinoJson 5. Please see arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6

     std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_;

           ^

In file included from C:\Users\Raffay Sajjad\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseArduino.h:22:0,

                 from C:\Users\Raffay Sajjad\Documents\Arduino\WiFi_Connection\WiFi_Connection.ino:2:

C:\Users\Raffay Sajjad\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:86:11: error: StaticJsonBuffer is a class from ArduinoJson 5. Please see arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6

   std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_;

           ^

Multiple libraries were found for "ESP8266WiFi.h"
 Used: C:\Users\Raffay
Multiple libraries were found for "FirebaseArduino.h"
 Used: C:\Users\Raffay
Multiple libraries were found for "ArduinoJson.h"
 Used: C:\Users\Raffay
Multiple libraries were found for "ESP8266HTTPClient.h"
 Used: C:\Users\Raffay
exit status 1
Error compiling for board NodeMCU 1.0 (ESP-12E Module).

Anyone can provide insight into this please?


Solution

  • check which arduino json version you are using. If you are using version six roll it back to version five using the library manager in the arduino ide, this is the version the firebase client is looking for.

    It is not erroring out due to the multiple libraries found issue because Arduino is just going to pick one for you it is erroring out due to the version mismatch with arduino json and the firebase client lib