问题描述
我尝试安装将集合导出到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中。
从项目中卸载扩展时,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 issue至uninstall the extension using the CLI。
- 如果这样做没有帮助,请尝试在GCP控制台内禁用并重新启用 Firebase Extensions API 。
- 请确保您的项目中启用了 Firebase Management API 。
- 如果这样做没有帮助,请导航到Cloud Console上的“ IAM权限”页面,然后找到服务帐户。
- 添加Cloud Functions Developer和Firebase Extensions API Service Agent角色。
- 如果由于某些原因无法使用这些角色,则只需添加项目编辑器角色即可。但是,使用包罗万象还为服务帐户提供了其他权限。
- 添加Cloud Functions Developer和Firebase Extensions API Service Agent角色。