littlebot
Published on 2025-04-10 / 2 Visits
0

【源码】基于 Firebase 的 ESP8266、ESP32 和 RP2040 Pico 客户端库

项目简介

这是一个基于 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 安装

  1. 打开 Arduino IDE,进入菜单 Sketch -> Include Library -> Manage Libraries...
  2. 在库管理器中搜索 "Firebase ESP Client",点击 "Install" 按钮。

使用 PlatformIO 安装

platformio.ini 文件中添加以下内容: ini lib_deps = Firebase ESP Client

3. 配置 Firebase 项目

  1. 在 Firebase 控制台中创建一个新项目。
  2. 启用所需的 Firebase 服务(如 RTDB、Cloud Firestore、Storage 等)。
  3. 获取项目的 API KeyDatabase 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】