Firebase 实时数据库安全设计

Firebase Realtime Database Security Design

更多设计问题/探索选项 - 我有一个 Firebase 实时数据库支持的项目,其中我有类似物联网的设备 (ESP32),可以定期测量环境条件并将数据存储在数据库中,还有一个用户使用的 flutter 应用程序将设备与其帐户相关联、查看数据和更新设备设置。

我的问题是关于 IOT 设备的最佳设置 - 我目前让它们都使用一个服务帐户来访问数据库并插入新读数。我担心这可能会导致项目出现安全问题,并且无法限制单个设备的安全权限。

另一种选择是为每台设备创建单独的用户帐户(每台设备都必须使用自己的唯一 ID 注册)。这将允许单独禁用每个设备并通过为数据库定义的安全规则进行操作,但会导致 auth 数据库中的用户数量更多以及更复杂的物联网设备代码。

我是否遗漏了以上内容?有没有人做过类似的事情并且可以提供一些设计见解?

i currently have them all using a single service account to access the database and insert new readings.

您应该只在受信任的环境中使用服务帐户,因为它们可以完全不受限制地访问您的 Firebase 项目。在所有其他情况下,请考虑常规 SDK,例如非常适合在 IoT 设备上使用的 non-privileged Node.js SDK