[英]Why am I facing this Problem in Arduino when connecting Firebase?
Arduino: 1.8.13 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled (new aborts on oom), Disabled, All SSL ciphers (most compatible), 32KB cache + 32KB IRAM (balanced), Use pgm_read macros for IRAM/PROGMEM, 4MB (FS:2MB OTA:~1019KB), 2, v2 Lower Memory, Disabled, None, Only Sketch, 115200"
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseObject.cpp: In member function 'bool FirebaseObject::isNullString(const String&) const':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseObject.cpp:71:57: warning: 'const char* ArduinoJson::Internals::JsonVariantCasts<TImpl>::asString() const [with TImpl = ArduinoJson::JsonVariant]' is deprecated: use as<char*>() instead [-Wdeprecated-declarations]
71 | return variant.is<const char *>() && variant.asString() == NULL;
| ^
In file included from c:\users\jordan\documents\arduino\libraries\arduinojson\src\arduinojson\JsonVariantBase.hpp:7,
from c:\users\jordan\documents\arduino\libraries\arduinojson\src\arduinojson\JsonVariant.hpp:13,
from c:\users\jordan\documents\arduino\libraries\arduinojson\src\arduinojson\jsonbuffer.hpp:12,
from C:\Users\Jordan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Deserialization/JsonParser.hpp:7,
from C:\Users\Jordan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonBufferBase.hpp:7,
from C:\Users\Jordan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/DynamicJsonBuffer.hpp:7,
from C:\Users\Jordan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:9,
from C:\Users\Jordan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,
from C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseObject.h:24,
from C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseObject.cpp:17:
c:\users\jordan\documents\arduino\libraries\arduinojson\src\arduinojson\JsonVariantCasts.hpp:28:28: note: declared here
28 | FORCE_INLINE const char *asString() const {
| ^~~~~~~~
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseObject.cpp: In member function 'ArduinoJson::JsonVariant FirebaseObject::getJsonVariant(const String&) const':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseObject.cpp:91:26: warning: 'ArduinoJson::JsonObject& ArduinoJson::Internals::JsonVariantCasts<TImpl>::asObject() const [with TImpl = ArduinoJson::JsonVariant]' is deprecated: use as<JsonObject>() instead [-Wdeprecated-declarations]
91 | json = json.asObject().get<JsonVariant>(start);
| ^
In file included from c:\users\jordan\documents\arduino\libraries\arduinojson\src\arduinojson\JsonVariantBase.hpp:7,
from c:\users\jordan\documents\arduino\libraries\arduinojson\src\arduinojson\JsonVariant.hpp:13,
from c:\users\jordan\documents\arduino\libraries\arduinojson\src\arduinojson\jsonbuffer.hpp:12,
from C:\Users\Jordan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Deserialization/JsonParser.hpp:7,
from C:\Users\Jordan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonBufferBase.hpp:7,
from C:\Users\Jordan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/DynamicJsonBuffer.hpp:7,
from C:\Users\Jordan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:9,
from C:\Users\Jordan\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9,
from C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseObject.h:24,
from C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseObject.cpp:17:
c:\users\jordan\documents\arduino\libraries\arduinojson\src\arduinojson\JsonVariantCasts.hpp:23:28: note: declared here
23 | FORCE_INLINE JsonObject &asObject() const {
| ^~~~~~~~
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\Firebase.cpp: In member function 'int FirebaseRequest::sendRequest(const string&, const string&, char*, const string&, const string&)':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\Firebase.cpp:78:1: warning: no return statement in function returning non-void [-Wreturn-type]
78 | }
| ^
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\Firebase.cpp: In member function 'void FirebaseStream::startStreaming(const string&, const string&, const string&)':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\Firebase.cpp:91:16: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
91 | analyzeError("STREAM", status, path_with_auth);
| ^~~~~~~~
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp: In member function 'String FirebaseArduino::push(const String&, const ArduinoJson::JsonVariant&)':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp:65:54: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
65 | int status = req_.get()->sendRequest(host_, auth_, "POST", path.c_str(), buf);
| ^~~~~~
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp: In member function 'void FirebaseArduino::set(const String&, const ArduinoJson::JsonVariant&)':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp:94:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
94 | req_.get()->sendRequest(host_, auth_, "PUT", path.c_str(), buf);
| ^~~~~
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp: In member function 'void FirebaseArduino::getRequest(const String&)':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp:101:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
101 | req_.get()->sendRequest(host_, auth_, "GET", path.c_str());
| ^~~~~
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp: In member function 'virtual void FirebaseArduino::remove(const String&)':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp:147:41: warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
147 | req_.get()->sendRequest(host_, auth_, "DELETE", path.c_str());
| ^~~~~~~~
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp: In member function 'virtual const String& FirebaseArduino::error()':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseArduino.cpp:201:32: warning: returning reference to temporary [-Wreturn-local-addr]
201 | return error_.message().c_str();
| ~~~~~~~~~~~~~~~~~~~~~~^~
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp: In member function 'virtual void FirebaseHttpClientEsp8266::begin(const string&)':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp:47:50: error: no matching function for call to 'begin(const char*, const char [60])'
47 | http_.begin(url.c_str(), kFirebaseFingerprint);
| ^
In file included from C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp:9:
C:\Users\Jordan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:166:10: note: candidate: 'bool HTTPClient::begin(String, uint16_t, String)' (near match)
166 | bool begin(String host, uint16_t port, String uri = "/") __attribute__ ((error("obsolete API, use ::begin(WiFiClient, host, port, uri)")));
| ^~~~~
C:\Users\Jordan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:166:10: note: conversion of argument 2 would be ill-formed:
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp:47:30: error: invalid conversion from 'const char*' to 'uint16_t' {aka 'short unsigned int'} [-fpermissive]
47 | http_.begin(url.c_str(), kFirebaseFingerprint);
| ^~~~~~~~~~~~~~~~~~~~
| |
| const char*
In file included from C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp:9:
C:\Users\Jordan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:167:10: note: candidate: 'bool HTTPClient::begin(String, const uint8_t*)' (near match)
167 | bool begin(String url, const uint8_t httpsFingerprint[20]) __attribute__ ((error("obsolete API, use ::begin(WiFiClientSecure, ...)")));
| ^~~~~
C:\Users\Jordan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:167:10: note: conversion of argument 2 would be ill-formed:
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp:47:30: error: invalid conversion from 'const char*' to 'const uint8_t*' {aka 'const unsigned char*'} [-fpermissive]
47 | http_.begin(url.c_str(), kFirebaseFingerprint);
| ^~~~~~~~~~~~~~~~~~~~
| |
| const char*
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp: In member function 'virtual void FirebaseHttpClientEsp8266::begin(const string&, const string&)':
C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp:51:60: error: invalid conversion from 'const char*' to 'const uint8_t*' {aka 'const unsigned char*'} [-fpermissive]
51 | http_.begin(host.c_str(), kFirebasePort, path.c_str(), kFirebaseFingerprint);
| ^~~~~~~~~~~~~~~~~~~~
| |
| const char*
In file included from C:\Users\Jordan\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp:9:
C:\Users\Jordan\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.0\libraries\ESP8266HTTPClient\src/ESP8266HTTPClient.h:168:70: note: initializing argument 4 of 'bool HTTPClient::begin(String, uint16_t, String, const uint8_t*)'
168 | bool begin(String host, uint16_t port, String uri, const uint8_t httpsFingerprint[20]) __attribute__ ((error("obsolete API, use ::begin(WiFiClientSecure, ...)")));
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
exit status 1
Error compiling for board NodeMCU 1.0 (ESP-12E Module).
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
When I faced the same issue, I rolled back to 2.7.4 on the board manager, which result in it compiling without a problem.当我遇到同样的问题时,我在 board manager 上回滚到 2.7.4,这导致它编译没有问题。 I guess the board software updated before the FireBase library did.
我猜在 FireBase 库之前更新了板软件。 I found this solution on this page .
我在这个页面上找到了这个解决方案。
I found out the mistakes as I was transferring the code from an old laptop to a new laptop.当我将代码从旧笔记本电脑转移到新笔记本电脑时,我发现了错误。
Guess What?你猜怎么着? The version of Arduino library that i recently download in my new laptop does not match the version in the old laptop.
我最近在新笔记本电脑中下载的 Arduino 库版本与旧笔记本电脑中的版本不匹配。 That is why the error message had pop out.
这就是弹出错误消息的原因。
with platformio, change in platformio.ini (work for me), for latest 2.x version:使用 platformio,更改 platformio.ini(为我工作),用于最新的 2.x 版本:
platform = espressif8266@^2
平台 = espressif8266@^2
rolled back to 2.7.X version enter image description here回滚到 2.7.X 版本在此处输入图像描述
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.