Skip to content

Commit 5f6064b

Browse files
committed
Fix filesystem was not mount before file removing issue and update TCP client.
1 parent 8a826d4 commit 5f6064b

File tree

9 files changed

+122
-110
lines changed

9 files changed

+122
-110
lines changed

library.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "Firebase ESP32 Client",
3-
"version": "4.2.4",
3+
"version": "4.2.5",
44
"keywords": "communication, REST, esp32, arduino",
55
"description": "The secure, fast and reliable Firebase Realtime database library to read, store, update, delete, listen, backup, and restore data. You can also read and modify the database security rules with this library.",
66
"repository": {

library.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name=Firebase ESP32 Client
22

3-
version=4.2.4
3+
version=4.2.5
44

55
author=Mobizt
66

src/FB_Const.h

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,9 @@ class QueryFilter;
110110

111111
#define DEFAULT_REQUEST_TIMEOUT 2000
112112

113+
// The TCP session will be closed when time out reached
114+
#define DEFAULT_TCP_CONNECTION_TIMEOUT 3 * 60 * 1000
115+
113116
#define SD_CS_PIN 15
114117

115118
#define STREAM_TASK_STACK_SIZE 8192
@@ -1700,7 +1703,7 @@ struct fb_esp_session_info_t
17001703
unsigned long last_conn_ms = 0;
17011704
int cert_addr = 0;
17021705
bool cert_updated = false;
1703-
uint32_t conn_timeout = 3 * 60 * 1000;
1706+
uint32_t conn_timeout = DEFAULT_TCP_CONNECTION_TIMEOUT;
17041707

17051708
uint16_t resp_size = 2048;
17061709
fb_esp_response_t response;
@@ -2015,7 +2018,7 @@ static const char fb_esp_pgm_str_248[] PROGMEM = "client_email";
20152018
static const char fb_esp_pgm_str_249[] PROGMEM = "fcm";
20162019
static const char fb_esp_pgm_str_250[] PROGMEM = "identitytoolkit";
20172020
static const char fb_esp_pgm_str_251[] PROGMEM = "oauth2";
2018-
static const char fb_esp_pgm_str_252[] PROGMEM = "token is not ready";
2021+
static const char fb_esp_pgm_str_252[] PROGMEM = "token is not ready (revoked or expired)";
20192022
static const char fb_esp_pgm_str_253[] PROGMEM = "client_id";
20202023
static const char fb_esp_pgm_str_254[] PROGMEM = "uid";
20212024
static const char fb_esp_pgm_str_255[] PROGMEM = "claims";

src/FB_Error.h

Lines changed: 43 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/**
2-
* Created April 23, 2022
2+
* Created November 10, 2022
33
*/
44

55
#ifndef FB_Error_H
@@ -20,10 +20,10 @@
2020
#define FIREBASE_ERROR_TCP_ERROR_TOO_LESS_RAM (-7)
2121
#define FIREBASE_ERROR_TCP_ERROR_ENCODING (-8)
2222
#define FIREBASE_ERROR_TCP_ERROR_STREAM_WRITE (-9)
23-
#define FIREBASE_ERROR_TCP_RESPONSE_PAYLOAD_READ_TIMED_OUT (-10)
24-
#define FIREBASE_ERROR_TCP_RESPONSE_READ_FAILED (-11)
25-
#define FIREBASE_ERROR_EXTERNAL_CLIENT_DISABLED (-12)
26-
#define FIREBASE_ERROR_EXTERNAL_CLIENT_NOT_INITIALIZED (-13)
23+
#define FIREBASE_ERROR_TCP_ERROR_CONNECTION_INUSED (-10)
24+
#define FIREBASE_ERROR_TCP_RESPONSE_PAYLOAD_READ_TIMED_OUT (-11)
25+
#define FIREBASE_ERROR_TCP_RESPONSE_READ_FAILED (-12)
26+
2727

2828
/// HTTP codes see RFC7231
2929
#define FIREBASE_ERROR_HTTP_CODE_OK 200
@@ -59,41 +59,46 @@
5959
#define FIREBASE_ERROR_HTTP_CODE_LOOP_DETECTED 508
6060
#define FIREBASE_ERROR_HTTP_CODE_NETWORK_AUTHENTICATION_REQUIRED 511
6161

62-
// Firenbase error
62+
// Firebase error
6363
#define FIREBASE_ERROR_BUFFER_OVERFLOW /* */ (FB_ERROR_RANGE - 1)
6464
#define FIREBASE_ERROR_DATA_TYPE_MISMATCH /* */ (FB_ERROR_RANGE - 2)
6565
#define FIREBASE_ERROR_PATH_NOT_EXIST /* */ (FB_ERROR_RANGE - 3)
66-
#define FIREBASE_ERROR_TCP_ERROR_CONNECTION_INUSED /* */ (FB_ERROR_RANGE - 4)
67-
#define FIREBASE_ERROR_NO_FCM_ID_TOKEN_PROVIDED /* */ (FB_ERROR_RANGE - 5)
68-
#define FIREBASE_ERROR_NO_FCM_SERVER_KEY_PROVIDED /* */ (FB_ERROR_RANGE - 6)
69-
#define FIREBASE_ERROR_OAUTH2_REQUIRED /* */ (FB_ERROR_RANGE - 7)
70-
#define FIREBASE_ERROR_TCP_MAX_REDIRECT_REACHED /* */ (FB_ERROR_RANGE - 8)
71-
#define FIREBASE_ERROR_EXPECTED_JSON_DATA /* */ (FB_ERROR_RANGE - 9)
72-
#define FIREBASE_ERROR_CANNOT_CONFIG_TIME /* */ (FB_ERROR_RANGE - 10)
73-
#define FIREBASE_ERROR_SSL_RX_BUFFER_SIZE_TOO_SMALL /* */ (FB_ERROR_RANGE - 11)
74-
#define FIREBASE_ERROR_ARCHIVE_NOT_FOUND /* */ (FB_ERROR_RANGE - 12)
75-
#define FIREBASE_ERROR_UNINITIALIZED /* */ (FB_ERROR_RANGE - 13)
76-
#define FIREBASE_ERROR_TOKEN_SET_TIME /* */ (FB_ERROR_RANGE - 14)
77-
#define FIREBASE_ERROR_TOKEN_CREATE_HASH /* */ (FB_ERROR_RANGE - 15)
78-
#define FIREBASE_ERROR_TOKEN_PARSE_PK /* */ (FB_ERROR_RANGE - 16)
79-
#define FIREBASE_ERROR_TOKEN_SIGN /* */ (FB_ERROR_RANGE - 17)
80-
#define FIREBASE_ERROR_TOKEN_EXCHANGE /* */ (FB_ERROR_RANGE - 18)
81-
#define FIREBASE_ERROR_TOKEN_NOT_READY /* */ (FB_ERROR_RANGE - 19)
82-
#define FIREBASE_ERROR_LONG_RUNNING_TASK /* */ (FB_ERROR_RANGE - 20)
83-
#define FIREBASE_ERROR_UPLOAD_TIME_OUT /* */ (FB_ERROR_RANGE - 21)
84-
#define FIREBASE_ERROR_UPLOAD_DATA_ERRROR /* */ (FB_ERROR_RANGE - 22)
85-
#define FIREBASE_ERROR_NO_FCM_TOPIC_PROVIDED /* */ (FB_ERROR_RANGE - 23)
86-
#define FIREBASE_ERROR_FCM_ID_TOKEN_AT_INDEX_NOT_FOUND /* */ (FB_ERROR_RANGE - 24)
87-
#define FIREBASE_ERROR_MISSING_DATA /* */ (FB_ERROR_RANGE - 25)
88-
#define FIREBASE_ERROR_MISSING_CREDENTIALS /* */ (FB_ERROR_RANGE - 26)
89-
#define FIREBASE_ERROR_INVALID_JSON_RULES /* */ (FB_ERROR_RANGE - 27)
90-
#define FIREBASE_ERROR_FW_UPDATE_INVALID_FIRMWARE /* */ (FB_ERROR_RANGE - 28)
91-
#define FIREBASE_ERROR_FW_UPDATE_TOO_LOW_FREE_SKETCH_SPACE /* */ (FB_ERROR_RANGE - 29)
92-
#define FIREBASE_ERROR_FW_UPDATE_BIN_SIZE_NOT_MATCH_SPI_FLASH_SPACE /* */ (FB_ERROR_RANGE - 30)
93-
#define FIREBASE_ERROR_FW_UPDATE_BEGIN_FAILED /* */ (FB_ERROR_RANGE - 31)
94-
#define FIREBASE_ERROR_FW_UPDATE_WRITE_FAILED /* */ (FB_ERROR_RANGE - 32)
95-
#define FIREBASE_ERROR_FW_UPDATE_END_FAILED /* */ (FB_ERROR_RANGE - 33)
96-
#define FIREBASE_ERROR_SYS_TIME_IS_NOT_READY /* */ (FB_ERROR_RANGE - 34)
97-
#define FIREBASE_ERROR_NTP_SYNC_TIMED_OUT /* */ (FB_ERROR_RANGE - 35)
66+
#define FIREBASE_ERROR_EXTERNAL_CLIENT_DISABLED /* */ (FB_ERROR_RANGE - 4)
67+
#define FIREBASE_ERROR_EXTERNAL_CLIENT_NOT_INITIALIZED /* */ (FB_ERROR_RANGE - 5)
68+
#define FIREBASE_ERROR_NO_FCM_ID_TOKEN_PROVIDED /* */ (FB_ERROR_RANGE - 6)
69+
#define FIREBASE_ERROR_NO_FCM_SERVER_KEY_PROVIDED /* */ (FB_ERROR_RANGE - 7)
70+
#define FIREBASE_ERROR_OAUTH2_REQUIRED /* */ (FB_ERROR_RANGE - 8)
71+
#define FIREBASE_ERROR_TCP_MAX_REDIRECT_REACHED /* */ (FB_ERROR_RANGE - 9)
72+
#define FIREBASE_ERROR_EXPECTED_JSON_DATA /* */ (FB_ERROR_RANGE - 10)
73+
#define FIREBASE_ERROR_CANNOT_CONFIG_TIME /* */ (FB_ERROR_RANGE - 11)
74+
#define FIREBASE_ERROR_SSL_RX_BUFFER_SIZE_TOO_SMALL /* */ (FB_ERROR_RANGE - 12)
75+
#define FIREBASE_ERROR_ARCHIVE_NOT_FOUND /* */ (FB_ERROR_RANGE - 13)
76+
#define FIREBASE_ERROR_UNINITIALIZED /* */ (FB_ERROR_RANGE - 14)
77+
#define FIREBASE_ERROR_TOKEN_SET_TIME /* */ (FB_ERROR_RANGE - 15)
78+
#define FIREBASE_ERROR_TOKEN_CREATE_HASH /* */ (FB_ERROR_RANGE - 16)
79+
#define FIREBASE_ERROR_TOKEN_PARSE_PK /* */ (FB_ERROR_RANGE - 17)
80+
#define FIREBASE_ERROR_TOKEN_SIGN /* */ (FB_ERROR_RANGE - 18)
81+
#define FIREBASE_ERROR_TOKEN_EXCHANGE /* */ (FB_ERROR_RANGE - 19)
82+
#define FIREBASE_ERROR_TOKEN_NOT_READY /* */ (FB_ERROR_RANGE - 20)
83+
#define FIREBASE_ERROR_LONG_RUNNING_TASK /* */ (FB_ERROR_RANGE - 21)
84+
#define FIREBASE_ERROR_UPLOAD_TIME_OUT /* */ (FB_ERROR_RANGE - 22)
85+
#define FIREBASE_ERROR_UPLOAD_DATA_ERRROR /* */ (FB_ERROR_RANGE - 23)
86+
#define FIREBASE_ERROR_NO_FCM_TOPIC_PROVIDED /* */ (FB_ERROR_RANGE - 24)
87+
#define FIREBASE_ERROR_FCM_ID_TOKEN_AT_INDEX_NOT_FOUND /* */ (FB_ERROR_RANGE - 25)
88+
#define FIREBASE_ERROR_MISSING_DATA /* */ (FB_ERROR_RANGE - 26)
89+
#define FIREBASE_ERROR_MISSING_CREDENTIALS /* */ (FB_ERROR_RANGE - 27)
90+
#define FIREBASE_ERROR_INVALID_JSON_RULES /* */ (FB_ERROR_RANGE - 28)
91+
#define FIREBASE_ERROR_FW_UPDATE_INVALID_FIRMWARE /* */ (FB_ERROR_RANGE - 29)
92+
#define FIREBASE_ERROR_FW_UPDATE_TOO_LOW_FREE_SKETCH_SPACE /* */ (FB_ERROR_RANGE - 30)
93+
#define FIREBASE_ERROR_FW_UPDATE_BIN_SIZE_NOT_MATCH_SPI_FLASH_SPACE /* */ (FB_ERROR_RANGE - 31)
94+
#define FIREBASE_ERROR_FW_UPDATE_BEGIN_FAILED /* */ (FB_ERROR_RANGE - 32)
95+
#define FIREBASE_ERROR_FW_UPDATE_WRITE_FAILED /* */ (FB_ERROR_RANGE - 33)
96+
#define FIREBASE_ERROR_FW_UPDATE_END_FAILED /* */ (FB_ERROR_RANGE - 34)
97+
#define FIREBASE_ERROR_SYS_TIME_IS_NOT_READY /* */ (FB_ERROR_RANGE - 35)
98+
#define FIREBASE_ERROR_NTP_SYNC_TIMED_OUT /* */ (FB_ERROR_RANGE - 36)
99+
#define FIREBASE_ERROR_TOKEN_COMPLETE_NOTIFY /* */ (FB_ERROR_RANGE - 37)
100+
#define FIREBASE_ERROR_TOKEN_COMPLETE_UNNOTIFY /* */ (FB_ERROR_RANGE - 38)
101+
#define FIREBASE_ERROR_TOKEN_ERROR_UNNOTIFY /* */ (FB_ERROR_RANGE - 39)
102+
98103

99104
#endif

src/FirebaseESP32.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
#ifndef FIREBASE_CLIENT_VERSION
2-
#define FIREBASE_CLIENT_VERSION "4.2.4"
2+
#define FIREBASE_CLIENT_VERSION "4.2.5"
33
#endif
44

55
/**
6-
* Google's Firebase Realtime Database Arduino Library for ESP32, v4.2.4
6+
* Google's Firebase Realtime Database Arduino Library for ESP32, v4.2.5
77
*
8-
* Created November 9, 2022
8+
* Created November 10, 2022
99
*
1010
* Updates:
11-
* - Fix ESP32 core v2.0.x filesystems issue.
12-
* - Fix Arduino IDE compilation error for ESP32.
13-
* - Add support Sign In with custom token.
11+
* - Fix filesystem was not mount before file removing issue.
12+
* - Update TCP client.
1413
*
1514
*
1615
* This library provides ESP32 to perform REST API by GET PUT, POST, PATCH,

src/mbfs/MB_FS.h

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
/**
2-
* The MB_FS, filesystems wrapper class v1.0.8.
2+
* The MB_FS, filesystems wrapper class v1.0.9
33
*
44
* This wrapper class is for SD and Flash filesystems interface which supports SdFat (//https://github.com/greiman/SdFat)
55
*
6-
* Created November 8, 2022
6+
* Created November 10, 2022
77
*
88
* The MIT License (MIT)
99
* Copyright (c) 2022 K. Suwatchai (Mobizt)
@@ -624,6 +624,9 @@ class MB_FS
624624
bool existed(const MB_String &filename, mbfs_file_type type)
625625
{
626626

627+
if (!checkStorageReady(type))
628+
return false;
629+
627630
#if defined(MBFS_FLASH_FS)
628631
if (type == mbfs_flash)
629632
return MBFS_FLASH_FS.exists(filename.c_str());
@@ -692,6 +695,19 @@ class MB_FS
692695

693696
bool remove(const MB_String &filename, mbfs_file_type type)
694697
{
698+
if (!checkStorageReady(type))
699+
return false;
700+
701+
#if defined(MBFS_FLASH_FS)
702+
if (type == mbfs_flash && !flashReady())
703+
return false;
704+
#endif
705+
706+
#if defined(MBFS_SD_FS)
707+
if (type == mbfs_sd && !sdReady())
708+
return false;
709+
#endif
710+
695711
if (!existed(filename, type))
696712
return true;
697713

0 commit comments

Comments
 (0)