Cloud Functions for Firebase 是否遵守实时数据库规则?

svi*_*ata 0 firebase firebase-security google-cloud-functions

我正在尝试使用特定节点的安全规则来保护我的实时数据库。

我了解 Firebase 规则在我使用我的设备写入/读取时适用。

如果写入/读取恰好来自 Cloud Functions,该怎么办?

如果我保护了(用户)节点,那么 Cloud Functions 是否知道(用户)是安全的?或者它无论如何都可以读写?

Dou*_*son 7

当您使用 Firebase Admin SDK 访问实时数据库时,默认情况下它具有完全读写访问权限。Admin SDK 的假设是您在特权环境中运行,在该环境中代码完全在您的控制之下,并且您确切地知道自己在做什么。

您的代码在 Cloud Functions 中运行的事实与这些无关。它可以轻松地在您的桌面或您控制的其他服务器上运行。这是 Admin SDK 的一个属性。

如果要更改实时数据库的访问范围,则必须知道最终用户的 UID,然后在初始化时使用databaseAuthVariableOverride初始化 SDK 以将其权限范围限制为该 UID 。

  • 请再次阅读我的回答。运行代码 Cloud Functions 不会改变任何东西。使用服务帐户凭据初始化 Admin SDK 可让您完全控制项目。如果您想施加约束,请将其写入您的代码中。 (2认同)
  • @svi.data 在 Cloud Functions 中运行的代码使用 Admin SDK 访问 Firestore。默认情况下,Admin SDK 以绕过安全规则的管理权限运行。这是设计使然,您的管理代码可以执行常规用户代码无法执行的操作,而不会使您的安全规则复杂化。 (2认同)