Typescript 如何通过云函数HTTP请求检查Firebase规则用户权限

Typescript 如何通过云函数HTTP请求检查Firebase规则用户权限,typescript,firebase-realtime-database,google-cloud-functions,firebase-security,firebase-admin,Typescript,Firebase Realtime Database,Google Cloud Functions,Firebase Security,Firebase Admin,我正在使用Firebase云函数并创建了几个HTTP请求 为了验证用户身份,我使用AdminSDK验证ID toke const decoded = await admin.auth().verifyIdToken(`${tokenId}`); 是否有一种方法可以检查用户是否有权根据安全规则从云函数读取/写入数据,而无需手动检查云函数中的相同规则 是否有一种方法可以检查用户是否有权根据安全规则从云函数读取/写入数据,而无需手动检查云函数中的相同规则 云函数使用Firebase Admin No

我正在使用Firebase云函数并创建了几个HTTP请求

为了验证用户身份,我使用AdminSDK验证ID toke

const decoded = await admin.auth().verifyIdToken(`${tokenId}`);
是否有一种方法可以检查用户是否有权根据安全规则从云函数读取/写入数据,而无需手动检查云函数中的相同规则

是否有一种方法可以检查用户是否有权根据安全规则从云函数读取/写入数据,而无需手动检查云函数中的相同规则

  • 云函数使用Firebase Admin Node.js SDK,因此它们以管理权限运行,完全绕过安全规则
  • 从云功能来看,没有办法根据安全规则(RTDB、Firestore或云存储)检查给定用户的授权
  • 结论:您需要在云功能中实现逻辑,以便模拟您的安全规则



    注意,Admin SDK提供了读取安全规则代码的可能性(请参阅文档和),但是,同样,您需要实现业务逻辑来检查这些规则。因此,在您的特定情况下,它不会带来任何帮助。

    您可以在初始化Admin SDK时设置
    databaseAuthVariableOverride
    ,让云函数以调用它的用户的身份访问实时数据库。有关详细信息,请参阅上的Firebase文档


    此设置仅适用于实时数据库,因此,如果您切换到使用Firestore,则必须按照雷诺的回答执行。

    Hey Tal。你看到我下面的答案了吗?这有意义吗?你试过了吗?