;用云函数扩展";文件的一部分写道:
云功能在受信任的环境中执行,这意味着它们被授权为您项目的服务帐户。您可以使用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-admin
SDK从云函数发出的请求将不会被安全规则评估。他们使用服务帐户授权,这意味着他们不受规则约束。
如果您希望以用户身份进行授权并使您的写入受到安全规则的保护,则可以尝试从云功能使用Web SDK。您可以使用自定义身份验证来创建用户帐户,以便在云函数中使用,尽管这可能会减慢速度,因为在使用SDK之前,您必须在每个函数调用中进行身份验证。