获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

授予 Firebase 扩展程序的权限

为了让 Firebase 扩展程序执行其指定的操作,Firebase 会通过服务帐户授予已安装扩展程序的每个实例对您的项目和数据的有限访问权限。

什么是服务帐户?

服务帐户是一种特殊类型的 Google 用户帐户。它代表有权使用 Google API 访问数据的非人类用户。

在安装扩展程序期间,Firebase 会在您的项目中创建一个服务帐号。每个已安装的扩展实例都有自己的服务帐户。

Firebase 通过分配扩展程序的服务帐户特定角色(权限包)来限制对您的项目和数据的访问。扩展程序运行所需的角色由 Firebase 在扩展程序开发期间确定。在安装时,Firebase 会将这些角色分配给扩展程序的服务帐户,您不应修改、添加或删除任何这些分配的角色(否则您安装的扩展程序将无法按预期工作)。但是,您可以卸载扩展程序,这会完全删除服务帐户(及其访问权限)。

为扩展创建的服务帐户格式为: ext- extension-instance-id @ project-id .iam.gserviceaccount.com

您可以在项目设置服务帐户选项卡中查看与您的 Firebase 项目关联的所有服务帐户。

权限和角色

在扩展程序的开发过程中,Firebase 确定扩展程序运行所需的访问级别。

Firebase 通过明确列出 Firebase 在安装扩展程序期间应分配给扩展程序服务帐户角色(权限包)来定义此访问级别。

每个角色(及其固有权限)都基于特定的产品或服务。角色的示例是firebasehosting.adminbigquery.dataEditorfirebasedatabase.admin 。 Firebase 在扩展的规范文件( extension.yaml文件)中列出了扩展所需的角色。

对于官方 Firebase 扩展,Firebase 会彻底审查此角色列表,以确保扩展的访问权限严格限制在扩展任务的范围内。您还可以通过在Firebase Extensions 仪表板中查看扩展程序的详细信息页面或查看其README文件,自行查看并确认授予扩展程序的访问权限。

了解每个角色中包含的权限:

卸载扩展程序时会发生什么?

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