板 NodeMCU 1.0 编译错误ESP-12E 模块

问题描述

我在连接到 firebase 库时遇到问题..我正在使用 arduino ide 1.8.13 和 nodemcu esp8266.. 我收到此错误消息..有人可以帮我解决这个问题..


C:\Users\Nurul_Aida\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp: In member function 'virtual void FirebaseHttpClientEsp8266::begin(const string&)':
C:\Users\Nurul_Aida\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\Nurul_Aida\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp:9:
C:\Users\Nurul_Aida\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\Nurul_Aida\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\Nurul_Aida\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\Nurul_Aida\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp:9:
C:\Users\Nurul_Aida\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\Nurul_Aida\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\Nurul_Aida\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\Nurul_Aida\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp: In member function 'virtual void FirebaseHttpClientEsp8266::begin(const string&,const string&)':
C:\Users\Nurul_Aida\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\Nurul_Aida\Documents\Arduino\libraries\firebase-arduino-master\src\FirebaseHttpClient_Esp8266.cpp:9:
C:\Users\Nurul_Aida\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,String,const uint8_t*)'
  168 |     bool begin(String host,String uri,...)")));
      |                                                        ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
exit status 1
Error compiling for board NodeMCU 1.0 (ESP-12E Module).

解决方法

您应该尝试联系 Firebase-arduino 项目的作者,看看他们是否更新了他们的库。我看到转换类型和过时 API 存在多个错误。

我建议查看 Firebase 文档并查看他们的 REST API 解决方案,而不是依赖已弃用的 3rd 方库。