{"id":22886518,"url":"https://github.com/init-io/fireesp","last_synced_at":"2026-02-10T22:02:05.804Z","repository":{"id":263590204,"uuid":"890875156","full_name":"Init-io/FireEsp","owner":"Init-io","description":"This library provides functionality for Firebase Authentication, Realtime Database, and Firestore operations using ESP8266/ESP32 boards. It includes methods for user authentication (sign up, sign in, reset password), database operations (put, update, get, remove), and more.","archived":false,"fork":false,"pushed_at":"2025-06-22T10:11:46.000Z","size":48,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-24T11:29:15.100Z","etag":null,"topics":["arduino","arduinolibrary","esp32","esp8266","firebase","firebase-auth","firebase-authentication","firebase-database","firebase-realtime-database","firebase-storage"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Init-io.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-19T10:34:38.000Z","updated_at":"2025-07-31T20:27:28.000Z","dependencies_parsed_at":"2024-11-19T11:58:26.117Z","dependency_job_id":"44ea349c-a19d-4a4d-ae9d-e96714c7616e","html_url":"https://github.com/Init-io/FireEsp","commit_stats":null,"previous_names":["init-io/fireesp"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/Init-io/FireEsp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Init-io%2FFireEsp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Init-io%2FFireEsp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Init-io%2FFireEsp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Init-io%2FFireEsp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Init-io","download_url":"https://codeload.github.com/Init-io/FireEsp/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Init-io%2FFireEsp/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29319243,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-10T20:44:44.282Z","status":"ssl_error","status_checked_at":"2026-02-10T20:44:43.393Z","response_time":65,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arduino","arduinolibrary","esp32","esp8266","firebase","firebase-auth","firebase-authentication","firebase-database","firebase-realtime-database","firebase-storage"],"created_at":"2024-12-13T20:19:03.398Z","updated_at":"2026-02-10T22:02:05.789Z","avatar_url":"https://github.com/Init-io.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"---\n\n# FireEsp - A C++ Firebase Library for Arduino\n\n[![Arduino Library](https://img.shields.io/badge/Arduino-Library-blue.svg)](https://docs.arduino.cc/libraries/fireesp/?_gl=1*tsbv28*_up*MQ..*_ga*OTc3MDE5NDYxLjE3Mzg2OTIzNDg.*_ga_NEXN8H46L5*MTczODY5MjM0Ni4xLjEuMTczODY5MjQxMi4wLjAuNDU4ODMyODky)\n![GitHub Release](https://img.shields.io/github/v/release/init-io/FireEsp?label=release)\n[![License](https://img.shields.io/github/license/init-io/FireEsp)](LICENSE)\n\nFireEsp is a lightweight C++ library that simplifies the integration of Firebase services into your Arduino projects. It provides classes to interact with Firebase Authentication, Realtime Database, and Server Configuration. This library is designed for ease of use and aims to make Firebase integration seamless for IoT and embedded projects using Arduino-compatible boards.\n\n---\n\n## Features\n\n* **Firebase Authentication**: Sign up, sign in, reset passwords, verify email addresses, delete users, and refresh ID tokens.\n* **Firebase Realtime Database**: Perform basic CRUD operations (create, read, update, delete) on Firebase's Realtime Database.\n* **Server Configuration**: Set and manage Firebase project details such as API key, auth domain, and database URL.\n* **HTTP Requests**: Send HTTP requests to Firebase's REST API to perform authentication and database operations.\n* **Debugging Support**: Easily switch between production and debugging modes with a configurable debug level.\n* **Token Management**: Full support for refresh tokens and ID token renewal.\n\n---\n\n## Requirements\n\n* **Arduino IDE**: To compile and upload code to your Arduino or compatible board.\n* **Firebase Project**: You need a Firebase project with Authentication and Realtime Database enabled.\n* **Arduino-Compatible Board**: Supports boards like ESP8266, ESP32, etc.\n\n---\n\n## Installation\n\n```bash\ngit clone https://github.com/Init-io/FireEsp.git\n```\n\n1. Open the Arduino IDE.\n2. Go to **Sketch \u003e Include Library \u003e Add .ZIP Library...**.\n3. Select the `FireESP` folder.\n\n---\n\n## Usage\n\n### Firebase Configuration\n\n```cpp\nFbServer server(\"YOUR_API_KEY\", \"YOUR_AUTH_DOMAIN\", \"YOUR_DATABASE_URL\");\nserver.initialize();\n```\n\n---\n\n## Firebase Authentication\n\n### Sign Up\n\n```cpp\nFbAuthentication auth(server);\nbool success = auth.signUp(\"user@example.com\", \"password123\");\n```\n\n### Sign In\n\n```cpp\nbool success = auth.signIn(\"user@example.com\", \"password123\");\n```\n\n### Refresh ID Token\n\n```cpp\nbool success = auth.refreshIdToken(auth.getRefreshToken());\n```\n\n### Get Current Tokens\n\n```cpp\nString idToken = auth.getIdToken();\nString refreshToken = auth.getRefreshToken();\n```\n\n### Reset Password\n\n```cpp\nbool success = auth.resetPassword(\"user@example.com\");\n```\n\n### Verify Email\n\n```cpp\nbool success = auth.verifyEmail(auth.getIdToken());\n```\n\n### Check Email Verification\n\n```cpp\nbool verified = auth.checkEmailVerified(auth.getIdToken());\n```\n\n### Delete User\n\n```cpp\nbool success = auth.deleteUser(auth.getIdToken());\n```\n\n---\n\n## Firebase Database Operations\n\n### Put Data (String)\n\n```cpp\nFbDatabase database(server);\nbool success = database.put(\"/path/to/data\", \"key\", \"value\", auth.getIdToken());\n```\n\n### Put Data (Integer)\n\n```cpp\nbool success = database.put(\"/path/to/data\", \"key\", 123, auth.getIdToken());\n```\n\n### Put Raw JSON\n\n```cpp\nbool success = database.putJson(\"/path/to/data\", \"{\\\"name\\\":\\\"John\\\",\\\"age\\\":25}\", auth.getIdToken());\n```\n\n### Update Data (String)\n\n```cpp\nbool success = database.update(\"/path/to/data\", \"key\", \"new_value\", auth.getIdToken());\n```\n\n### Get Data (String)\n\n```cpp\nString value = database.get(\"/path/to/data\", auth.getIdToken());\n```\n\n### Get Raw JSON\n\n```cpp\nString json = database.getJson(\"/path/to/data\", auth.getIdToken());\n```\n\n### Remove Data\n\n```cpp\nbool success = database.remove(\"/path/to/data\", auth.getIdToken());\n```\n\n---\n\n## Debugging Support\n\nEnable or disable debugging globally.\n\n```cpp\n#define DEBUG 1  // 1 = Debug Mode, 0 = Production Mode\n#include \u003cFireEsp.h\u003e\n```\n\n* **Debug Mode:** Prints HTTP requests, responses, and errors.\n* **Production Mode:** No sensitive data is printed.\n\n---\n\n## Example Project\n\n```cpp\n#define DEBUG 1\n#include \u003cFireEsp.h\u003e\n\nFbServer server(\"YOUR_API_KEY\", \"YOUR_AUTH_DOMAIN\", \"YOUR_DATABASE_URL\");\nFbAuthentication auth(server);\nFbDatabase database(server);\n\nvoid setup() {\n  Serial.begin(115200);\n  server.initialize();\n\n  if (auth.signIn(\"user@example.com\", \"password123\")) {\n    Serial.println(\"User signed in!\");\n\n    // Save Data\n    database.put(\"/users/user1\", \"name\", \"John Doe\", auth.getIdToken());\n\n    // Refresh Token Example\n    if (auth.refreshIdToken(auth.getRefreshToken())) {\n      Serial.println(\"Token refreshed successfully!\");\n    }\n  }\n}\n\nvoid loop() {\n  // Your code here\n}\n```\n\n---\n\n## Known Issues\n\n* **WiFi Instability**: Unstable networks may cause requests to fail intermittently.\n* **Firebase Delays**: Occasionally, Firebase may delay response, especially during refresh or sign-in.\n\n---\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.\n\n---\n\n## Contributing\n\nWe welcome contributions! Please:\n\n* Fork the repo\n* Create a feature branch\n* Submit a pull request\n\n**Follow coding style and document your changes properly.**\n\n---\n\n## Contact\n\n* GitHub: [FireEsp Repository](https://github.com/Init-io/FireEsp)\n* Email: [developers.init.io@gmail.com](mailto:developers.init.io@gmail.com)\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finit-io%2Ffireesp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finit-io%2Ffireesp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finit-io%2Ffireesp/lists"}