项目简介
这是一个基于 Firebase 的客户端库,适用于 ESP8266、ESP32 和 RP2040 Pico 设备。该库能让开发者轻松实现这些设备与 Firebase 提供的各类服务进行交互,如实时数据库、云存储、云函数、云消息等。
项目的主要特性和功能
主要功能
- 支持 Firebase 实时数据库的读取、写入、更新、删除、查询及流式传输等操作。
- 支持 Firebase 云存储的文件上传、下载、删除及元数据读取等操作。
- 支持 Firebase Cloud Functions 的创建、部署、调用、更新和删除。
- 支持通过 HTTP 协议使用 Firebase Cloud Messaging 发送消息到注册设备。
- 具备多种身份验证方式,包括 Email/Password、OAuth2.0、自定义令牌等。
- 内置 FirebaseJson 库,可进行 JSON 数据的创建、编辑、序列化和反序列化。
- 支持错误队列管理,能自动重试失败的请求。
- 支持通过 RTDB、Firebase 存储和 Google 云存储进行 OTA 固件更新。
支持的硬件平台
- ESP8266
- ESP32
- RP2040 Pico
- Arduino 设备(通过外部客户端支持)
支持的 Firebase 服务
- Firebase Realtime Database
- Firebase Cloud Firestore
- Firebase Storage
- Google Cloud Storage
- Firebase Cloud Messaging
- Firebase Cloud Functions
安装使用步骤
1. 安装依赖库
确保已安装 ESP8266 或 ESP32 的核心库。Arduino IDE 可通过 Boards Manager 安装;PlatformIO 可通过 PIO Home 安装。
2. 安装 Firebase ESP Client 库
使用 Arduino IDE 安装
- 打开 Arduino IDE,进入菜单 Sketch -> Include Library -> Manage Libraries...。
- 在库管理器中搜索 "Firebase ESP Client",点击 "Install" 按钮。
使用 PlatformIO 安装
在 platformio.ini
文件中添加以下内容:
ini
lib_deps = Firebase ESP Client
3. 配置 Firebase 项目
- 在 Firebase 控制台中创建一个新项目。
- 启用所需的 Firebase 服务(如 RTDB、Cloud Firestore、Storage 等)。
- 获取项目的 API Key 和 Database URL。
4. 初始化 Firebase 客户端
在代码中初始化 Firebase 客户端,并配置 WiFi 连接和 Firebase 认证信息。 ```cpp
include
include
// 定义 Firebase 数据对象 FirebaseData fbdo;
// 定义 Firebase 认证对象 FirebaseAuth auth;
// 定义 Firebase 配置对象 FirebaseConfig config;
void setup() { Serial.begin(115200);
// 连接到 WiFi WiFi.begin("YOUR_WIFI_SSID", "YOUR_WIFI_PASSWORD"); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); }
// 配置 Firebase config.api_key = "YOUR_FIREBASE_API_KEY"; config.database_url = "YOUR_DATABASE_URL";
// 设置认证信息 auth.user.email = "YOUR_EMAIL"; auth.user.password = "YOUR_PASSWORD";
// 初始化 Firebase Firebase.begin(&config, &auth); Firebase.reconnectWiFi(true); }
void loop() { // 处理 Firebase 任务 if (Firebase.ready()) { // 在这里执行 Firebase 操作 } } ```
5. 使用 Firebase 功能
实时数据库操作
```cpp // 写入数据到 RTDB Firebase.RTDB.setInt(&fbdo, "/test/int", 123);
// 读取数据
if (Firebase.RTDB.getInt(&fbdo, "/test/int")) {
Serial.println(fbdo.to
云存储操作
cpp
// 上传文件到 Firebase Storage
Firebase.Storage.upload(&fbdo, "gs://your_bucket_name.appspot.com", "/path/to/local/file", "application/octet-stream");
发送 FCM 消息
```cpp Firebase.FCM.setServerKey("YOUR_FCM_SERVER_KEY");
FCM_HTTPv1_JSON_Message msg; msg.token = "DEVICE_REGISTRATION_TOKEN"; msg.notification.title = "Notification Title"; msg.notification.body = "Notification Body";
Firebase.FCM.send(&fbdo, &msg); ```
参考文档
许可证
本项目基于 MIT 许可证开源。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】