将数据从 ESP32 发送到 Firebase 实时数据库,但使用 Firebase 模拟器(本地)

问题描述 投票:0回答:1

我有一个 ESP32 通过 WiFi 将传感器数据发送到 Firebase 实时数据库(实时) - 一切正常。不过,我想使用 Firebase 模拟器仅在我的本地网络上开发程序,而不是继续通过互联网发送数据,并且我的 Firebase 帐户可能会产生数据费用(我有时每分钟发送数千次写入)。

ESP32文件(.cpp)中的代码部分我认为需要更改的是:

#define DATABASE_URL "https://xxxx-xxxxxxxx-default-rtdb.europe-west1.firebasedatabase.app/"
#define API_KEY "123456789012345678901234567890"

我的 Firebase 数据库已在本地网络 (192.168.0.10:9000) 上运行,因此我可以看到它全部启动并正常运行。我什至可以使用一些简单的 HTML/Javascript 代码向其写入数据。我只是无法让 ESP32 向其发送任何内容。我尝试过以下网址:

#define DATABASE_URL "http://192.168.0.10:9000/?ns=xxxx-xxxxxxxx-66rc4/"
#define DATABASE_URL "http://192.168.0.10:9000/?ns=xxxx-xxxxxxxx-66rc4/data"
#define DATABASE_URL "http://192.168.0.10:9000/database/xxxx-xxxxxxxx-66rc4/"
#define DATABASE_URL "http://192.168.0.10:9000/database/xxxx-xxxxxxxx-66rc4/data"

我刚刚在串行监视器中收到错误,内容如下:

[285954][E][WiFiGeneric.cpp:1582] hostByName(): DNS Failed for 192.168.0.10:9000

我正在使用 这个 FirebaseESP32 库作为参考。

我遗漏了一些明显的东西吗?我就是想不通。谢谢

firebase firebase-realtime-database esp32 arduino-esp8266 arduino-esp32
1个回答
0
投票

看起来URL解析器有点简单,不支持端口号。该库似乎也没有用于更改端口的界面。尝试在默认端口上运行测试服务并将其从 DATABASE_URL 的定义中删除:

//#define DATABASE_URL "http://192.168.0.10:9000/?ns=xxxx-xxxxxxxx-66rc4/"
#define DATABASE_URL "http://192.168.0.10/?ns=xxxx-xxxxxxxx-66rc4/"
© www.soinside.com 2019 - 2024. All rights reserved.