Я решил проблему. Я нашел ошибку в библиотеке Firebase.cpp => void FirebaseCall :: analysisError Вы должны изменить этот код До
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();
}
}
После отключения интернет-соединения оно снова подключается.Когда я снова подключен, firebase не подключается.Поэтому, когда проблема снова подключается, она больше не подключается к firebasis.Как мне это сделать?
boolean WiFiReturns() {
if (WiFi.localIP() == IPAddress(0, 0, 0, 0))
return 0;
switch (WiFi.status()) {
case WL_NO_SHIELD: return 0;
case WL_IDLE_STATUS: return 0;
case WL_NO_SSID_AVAIL: return 0;
case WL_SCAN_COMPLETED: return 1;
case WL_CONNECTED: return 1;
case WL_CONNECT_FAILED: return 0;
case WL_CONNECTION_LOST: return 0;
case WL_DISCONNECTED: return 0;
default: return 0;
}
}
void firebasereconnect() {
Serial.println("Trying to reconnect");
Firebase.begin(firebaseURl, authCode);
}
void loop() {
if (!WiFiReturns()) {
WiFi.isConnected();
digitalWrite(WIFILED, HIGH);
firebasereconnect();
} else {
digitalWrite(WIFILED, LOW);
}
}