首页 > 解决方案 > 如何通过 Cloud Functions HTTP 请求检查 Firebase 规则用户权限

问题描述

我正在使用 Firebase Cloud Functions 并创建了几个 HTTP 请求。

为了验证用户身份,我使用 admin sdk 验证 ID 令牌。

const decoded = await admin.auth().verifyIdToken(`${tokenId}`);

有没有办法根据安全规则检查用户是否具有从云功能读取/写入的权限,而无需手动检查云功能中的相同规则?

标签: typescriptfirebase-realtime-databasegoogle-cloud-functionsfirebase-securityfirebase-admin

解决方案


有没有办法根据安全规则检查用户是否具有从云功能读取/写入的权限,而无需手动检查云功能中的相同规则?

  1. Cloud Functions 使用 Firebase Admin Node.js SDK,因此它们以管理权限运行并且完全绕过安全规则。
  2. 云函数无法根据安全规则(RTDB、Firestore 或云存储)检查给定用户的授权。

结论:您需要在 Cloud Function 中实现逻辑以模仿您的安全规则。


请注意,Admin SDK 提供了读取安全规则代码的可能性(请参阅此处此处的文档),但同样,您需要实现检查这些规则的业务逻辑。因此,它对您的具体情况没有任何帮助。


推荐阅读