无法设置将集合导出到BigQuery扩展无法卸载:无法从服务帐户中删除IAM角色

问题描述

我尝试安装将集合导出到BigQuery扩展,以将Firestore集合数据发送到BigQuery。安装成功,但是无法使查询正常工作。我不断收到错误消息:

未找到:在美国位置未找到数据集myproject:firestore_events

我尝试卸载并重新安装。我现在有两个扩展实例,尝试卸载失败并显示错误

无法从项目/ myproject / instances / firestore-bigquery-export的服务帐户中删除IAM角色

是否可以手动卸载? 有手动安装的方法吗?

解决方法

以下错误消息表示您的FROM语句可能不包含正确的查询结构-项目,数据库和表:

未找到:在美国位置未找到数据集myproject:firestore_events

例如:

SELECT *
FROM `my-project.my-database.my-table`

请注意反引号。

有关类似问题的详细信息,请参见Error: Not found: Dataset my-project-name:domain_public was not found in location US

现在,关于第二个错误消息:

无法从项目/ myproject / instances / firestore-bigquery-export的服务帐户中删除IAM角色

我怀疑在重新安装和卸载其中一个扩展实例后,其服务帐户可能已被删除,因此无法删除其IAM角色。

安装此扩展程序会生成一个新的服务帐户,该帐户具有 BigQuery Data Editor 角色,可以访问您的项目和资源。该角色使扩展程序可以配置数据并将其导出到BigQuery中。

来自documentation

从项目中卸载扩展时,Firebase会删除为该扩展实例创建的服务帐户。删除服务帐户后,该扩展名将无法在您的项目中运行,因为它不再具有对您的项目或数据的访问权限。

我能够uninstall并重新安装Export Collections to BigQuery扩展名,以避免项目中出现重复项。

要回答您的最后一个问题,除documentation中显示的方法外,我不知道其他安装/卸载Firebase扩展的方法。您可以使用Firebase控制台或Firebase CLI安装扩展程序:

1-安装Firebase CLI或将其更新到最新版本:

npm install -g firebase-tools

2-安装扩展程序:

firebase ext:install firestore-bigquery-export --project=projectId_or_alias

已编辑

我们可以按照以下步骤对错误进行故障排除:

无法从项目的服务帐户中删除IAM角色

  • 请确保您是要在其中安装扩展程序的项目的所有者。
  • 请参阅此GitHub issueuninstall the extension using the CLI
  • 如果这样做没有帮助,请尝试在GCP控制台内禁用并重新启用 Firebase Extensions API
  • 请确保您的项目中启用了 Firebase Management API
  • 如果这样做没有帮助,请导航到Cloud Console上的“ IAM权限”页面,然后找到服务帐户。
    • 添加Cloud Functions Developer和Firebase Extensions API Service Agent角色。
      • 如果由于某些原因无法使用这些角色,则只需添加项目编辑器角色即可。但是,使用包罗万象还为服务帐户提供了其他权限。