首页 > 解决方案 > Authenticated Cloud Functions:访问 Firestore 的权限不足

问题描述

我正在根据此文档为函数函数调用设置经过身份验证的云函数。在我的用例中,调用函数是 CF1 而接收函数是 CF2

我已经my-func-invoker@myproject.iam.gserviceaccount.com为 CF1 设置并分配了一个服务帐户 ( ),并将 CF2 的 Cloud Functions Invoker 角色设置/分配给所述my-func-invoker@myproject.iam.gserviceaccount.com服务帐户。一切都很好,CF1可以毫无问题地调用CF2。

但是在 CF1 中,有 2 个工作流程:

  1. 调用 CF2
  2. 读/写到 Firestore

将服务帐户分配给 CF1 后,CF1 失去了读/写 Firestore 的权限(我的 Firestore 目前授予所有读写访问权限)并引发7 PERMISSION_DENIED: Missing or insufficient permissions.错误。

有什么我想念的吗?

标签: node.jsgoogle-cloud-firestoregoogle-cloud-functions

解决方案


您可能只需要为服务帐户 #1 提供正确的角色即可访问 firestore [0]。我会检查当前授予 SA 的角色,看看它是否缺少所需的内容。

[0] https://cloud.google.com/firestore/docs/security/iam#roles


推荐阅读