我有重新连接的这段代码:
void loop() {
if(WiFi.status() != WL_CONNECTED || WiFi.status() != 3) {
wifiConnect();
Serial.println("Trying to reconnect to firebase");
delay(1000);
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}
但是如果互联网断开连接并再次重新连接,这种情况Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH)
不会再次连接到Firebase吗?!
那是为什么,我该如何解决?
答案 0 :(得分:0)
尝试使用ESP.reset();
示例:
if (Firebase.failed()) {
Serial.print("setting number failed:");
Serial.println(Firebase.error());
ESP.reset();
return;
}
答案 1 :(得分:0)
就我而言,请通过philipnguyen8588修复Firebase.cpp,并修复firebasearduino库的FirebaseArduino.cpp,并且可以正常工作 1)更改Firebase.cpp:
void FirebaseCall::analyzeError(char* method, int status, const std::string& path_with_auth) {
if (status != 200) {
error_ = FirebaseError(status,
std::string(method) + " " + path_with_auth +
": " + http_->errorToString(status));
}
}
收件人:
void FirebaseCall::analyzeError(char* method, int status, const std::string& path_with_auth) {
if (status != 200) {
error_ = FirebaseError(status,
std::string(method) + " " + path_with_auth +
": " + http_->errorToString(status));
}
else {
error_ = FirebaseError();
}
}
2)更改FirebaseArduino.cpp:
int FirebaseArduino::getInt(const String& path) {
getRequest(path);
if (failed()) {
return 0;
}
return FirebaseObject(req_.get()->response().c_str()).getInt();
}
收件人:
int FirebaseArduino::getInt(const String& path) {
getRequest(path);
if (failed()) {
return -1;
}
return FirebaseObject(req_.get()->response().c_str()).getInt();
}
您可以将所有获取功能更改为:返回-1 以获取代码