是否可以将Firestore规则中由云函数触发的请求与用户身份验证的请求区分开来



;用云函数扩展";文件的一部分写道:

云功能在受信任的环境中执行,这意味着它们被授权为您项目的服务帐户。您可以使用Firebase Admin SDK:执行读写操作

规则的API引用表示request.auth将包含uid和令牌映射。CCD_ 2和CCD_serviceAccount";键指定请求的授权方式。

用例:我已经为用户实现了一个基于角色的机制,并希望允许对一些角色和allow delete: if request.auth.uid != null && isOneOfRoles(['super-admin', 'admin']);进行操作。我不能仅仅依靠检查request.auth.uid != null;

使用firebase-adminSDK从云函数发出的请求将不会被安全规则评估。他们使用服务帐户授权,这意味着他们不受规则约束。

如果您希望以用户身份进行授权并使您的写入受到安全规则的保护,则可以尝试从云功能使用Web SDK。您可以使用自定义身份验证来创建用户帐户,以便在云函数中使用,尽管这可能会减慢速度,因为在使用SDK之前,您必须在每个函数调用中进行身份验证。

相关内容

  • 没有找到相关文章

最新更新