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

krugob8w  于 2023-03-19  发布在  其他
关注(0)|答案(2)|浏览(91)

我正在使用Firebase云函数,并创建了几个HTTP请求。
为了验证用户身份,我使用admin sdk验证ID令牌。

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

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

ggazkfy8

ggazkfy81#

是否有一种方法可以根据安全规则检查用户是否具有从云功能读取/写入的权限,而无需手动检查云功能中的相同规则?
1.云函数使用Firebase Admin Node.js SDK,因此它们以管理权限运行,完全绕过安全规则。
1.云功能无法根据安全规则(RTDB、Firestore或云存储)检查给定用户的授权。
结论:您需要在您的云函数中实现逻辑,以便模拟您的安全规则。
注意Admin SDK提供了读取Security Rules代码的可能性(参见此处的文档和here),但是,同样,您需要实现
检查**这些规则的业务逻辑,因此它在您的特定情况下不会带来任何帮助。

uhry853o

uhry853o2#

通过在初始化Admin SDK时设置databaseAuthVariableOverride,您实际上可以使云函数以调用它的用户身份访问实时数据库。有关此操作的完整详细信息,请参阅Firebase文档中关于从Admin SDK以有限权限访问数据库的内容。
这个设置只适用于实时数据库,所以如果你切换到使用Firestore,你必须按照Renaud的回答去做。

相关问题