You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用ESP8266创建Firestore自定义ID文档?请求返回错误-5

问题:ESP8266 01S通过HTTPClient向Firestore发送PATCH请求返回错误-5

场景说明

我是Firebase新手,在Arduino项目中使用ESP8266 01S模块,想要硬编码一个设备ID,以此ID在Firestore的fishtanks集合下创建(不存在则创建)对应文档。

当前代码

使用ESP8266HTTPClient发送PATCH请求,代码如下:

HTTPClient http;
String url = "https://firestore.googleapis.com/v1/projects/" FIRESTORE_PROJECT_ID "/databases/(default)/documents/fishtanks/" + tankId + "?key=" + FIREBASE_API_KEY;
http.begin(client, url);

String jsonData = "{\"fields\": {" 
                    "\"tankId\": {\"stringValue\": \"" + tankId + "\"},"
                    "\"userId\": {\"nullValue\": null},"  // Initialize as null
                    "\"size\": {\"nullValue\": null},"    // Initialize as null
                    "\"watertype\": {\"nullValue\": null}" // Initialize as null
                    "}}";

httpResponseCode = http.sendRequest("PATCH", jsonData); 

问题现象

运行代码后,httpResponseCode返回错误码**-5**。

预期文档结构

当tankId为TankId_1时,预期Firestore中生成的文档结构如下:

"fishtanks": {
    "TankId_1": {
      "TankId": "TankId_1",
      "userId": "user_123",
      "size": null,
      "watertype": "freshwater"
    }
}

补充验证

已通过Postman发送相同逻辑的PATCH请求成功生成自定义ID的文档:

  • 请求地址:https://firestore.googleapis.com/v1/projects/FIRESTORE_PROJECT_ID/databases/(default)/documents/fishtanks/MY_CUSTOM_TANK_ID
  • 请求体:
{
  "fields": {
    "TankId": {
      "stringValue": "MY_CUSTOM_TANK_ID"
    },
    "UserId": {
      "nullValue": null
    },
    "TankSize": {
      "nullValue": null
    },
    "WaterType": {
      "nullValue": null
    }
  }
}

怀疑方向

怀疑是ESP8266HTTPClient处理HTTPS请求时出现问题。

内容的提问来源于stack exchange,提问作者Joaquin Hazzi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 09:12:19