权限通过roles授予您的项目成员。角色是权限的集合。将角色分配给项目成员时,您授予该项目成员该角色包含的所有权限。
此页面描述了您可能会在 Firebase 支持的角色中列出的权限所启用的操作。这些权限分为两类:
所有角色或 Firebase 中的特定操作所需的身份和访问管理 (IAM) 权限
所需权限
Firebase IAM 包括以下权限:
有关特定于 Firebase 产品或服务的权限的一般列表和说明,请参阅特定于Firebase 产品的 IAM 权限中的相应部分。
所有角色都包含所需的权限
使用任何 Firebase 产品或服务都需要下表中列出的权限。
这些权限自动包含在每个Firebase 预定义角色中。
允许 | 描述 |
---|---|
授予检索 Firebase 项目信息的权限 | |
授予检索 Firebase 项目信息的权限 | |
授予检查 Google API 状态和运行 Firebase CLI 命令的权限 |
特定于 Firebase 服务的操作所需的权限
执行某些特定于 Firebase 服务的操作需要下表中列出的权限。
需要时,这些权限会自动包含在每个Firebase 预定义角色中。
行动 | 所需权限 |
---|---|
使用协作工具(包括 Slack、Jira 和 PagerDuty)访问 Firebase 项目集成 | firebaseextensions.configs.* |
从 StackDriver 查看使用情况和分析 | 监控.timeSeries.list |
运行Firebase CLI命令 有关详细信息,请参阅有关Runtime Configurator Access的 Google Cloud 文档。 | 运行时配置。* |
特定于 Firebase 管理的操作所需的权限
下表中列出的权限是执行某些特定于 Firebase 管理的操作所需的附加权限。
管理权限和相关操作 | 需要额外许可 |
---|---|
firebase.billingPlans.update | |
更改 Firebase 项目的计费方案 | resourcemanager.projects.createBillingAssignment resourcemanager.projects.deleteBillingAssignment |
firebase.projects.delete | |
删除 Firebase 项目 | 资源管理器.projects.delete |
firebase.projects.update | |
将 Firebase 资源添加到现有的 Google Cloud 项目 | 资源管理器.projects.get 服务使用.服务.启用 服务使用.services.get |
更改 Firebase 项目的名称 | 资源管理器.projects.update |
为 Android 应用添加 SHA 证书指纹 | clientauthconfig.clients.create |
删除 Android 应用的 SHA 证书指纹 | clientauthconfig.clients.delete |
更新 Apple 应用的 App Store ID 或团队 ID | clientauthconfig.clients.get clientauthconfig.clients.update |
Firebase 产品特定的 IAM 权限
下表列出了特定于 Firebase 产品或服务的权限。您可以使用这些权限来创建自定义角色。
Firebase 管理权限
请注意,以下某些管理权限需要额外权限才能执行某些操作。
权限名称 | 描述 |
---|---|
firebase.billingPlans.get | 检索项目的当前Firebase 计费计划 |
firebase.billingPlans.update | 更改项目的当前Firebase 计费方案 |
firebase.clients.create | 将新应用程序添加到项目 |
firebase.clients.delete | 从项目中删除现有应用程序 |
firebase.clients.get | 检索项目中应用程序的详细信息和配置 |
firebase.clients.list | 检索项目中的应用程序列表 |
firebase.clients.undelete | 在数据被永久删除之前取消删除已删除的应用程序 |
firebase.clients.update | 更新项目中应用程序的详细信息和配置 |
firebase.links.create | 创建指向 Google 系统的新链接 (Firebase 控制台 > 项目设置 > 集成) |
firebase.links.delete | 删除指向 Google 系统的链接 (Firebase 控制台 > 项目设置 > 集成) |
firebase.links.list | 检索 Google 系统的链接列表 (Firebase 控制台 > 项目设置 > 集成) |
firebase.links.update | 更新与 Google 系统的现有链接 (Firebase 控制台 > 项目设置 > 集成) |
firebase.playLinks.get | 检索有关 Google Play 链接的详细信息 (Firebase 控制台 > 项目设置 > 集成 > Google Play) |
firebase.playLinks.list | 检索 Google Play 链接列表 (Firebase 控制台 > 项目设置 > 集成 > Google Play) |
firebase.playLinks.update | 创建新链接并更新现有的 Google Play 链接 (Firebase 控制台 > 项目设置 > 集成 > Google Play) |
firebase.projects.delete | 删除现有项目 |
firebase.projects.get | 检索项目的详细信息和 Firebase 资源 |
firebase.projects.update | 修改现有项目的属性 接收有关适用的 Firebase 产品和功能的提醒(了解更多) |
firebaseinstallations.instances.delete | 删除 Firebase 安装 ID 和与该安装相关的数据(了解更多) |
谷歌分析权限
以下权限授予对链接到 Firebase 项目的 Analytics 属性的访问权限。它们允许 Firebase 项目成员访问 Analytics 数据,包括受众、用户属性、渠道、报告、转化等。
权限名称 | 描述 |
---|---|
firebaseanalytics.resources.googleAnalytics编辑 | 默认情况下,将 Analytics Editor 角色授予链接的 Analytics 属性 |
firebaseanalytics.resources.googleAnalyticsAdditionalAccess | 默认情况下,将 Analytics Marketer 角色授予链接的 Analytics 属性 |
firebaseanalytics.resources.googleAnalyticsReadAndAnalyze | 默认情况下,将 Analytics Viewer 角色授予链接的 Analytics 属性 |
firebaseanalytics.resources.googleAnalyticsRestrictedAccess | 默认情况下,将 Analytics Viewer 角色授予链接的 Analytics 媒体资源,而无权访问收入数据和成本数据 |
Firebase 应用检查权限
权限名称 | 描述 |
---|---|
firebaseappcheck.appAttestConfig.get | 检索应用程序的 App Attest 配置 |
firebaseappcheck.appAttestConfig.update | 更新应用的 App Attest 配置 |
firebaseappcheck.debugTokens.get | 检索应用程序的调试令牌 |
firebaseappcheck.debugTokens.update | 创建、更新或删除应用程序的调试令牌 |
firebaseappcheck.deviceCheckConfig.get | 检索应用程序的 DeviceCheck 配置 |
firebaseappcheck.deviceCheckConfig.update | 更新应用程序的 DeviceCheck 配置 |
firebaseappcheck.playIntegrityConfig.get | 检索应用的 Play Integrity 配置 |
firebaseappcheck.playIntegrityConfig.update | 更新应用的 Play Integrity 配置 |
firebaseappcheck.recaptchaEnterpriseConfig.get | 检索应用程序的 reCAPTCHA Enterprise 配置 |
firebaseappcheck.recaptchaEnterpriseConfig.update | 更新应用程序的 reCAPTCHA Enterprise 配置 |
firebaseappcheck.recaptchaV3Config.get | 检索应用程序的 reCAPTCHA v3 配置 |
firebaseappcheck.recaptchaV3Config.update | 更新应用程序的 reCAPTCHA v3 配置 |
firebaseappcheck.safetyNetConfig.get | 检索应用程序的 SafetyNet 配置 |
firebaseappcheck.safetyNetConfig.update | 更新应用程序的 SafetyNet 配置 |
firebaseappcheck.services.get | 检索项目的服务实施配置 |
firebaseappcheck.services.update | 更新项目的服务执行配置 |
Firebase 应用分发权限
权限名称 | 描述 |
---|---|
firebaseappdistro.releases.list | 检索现有发行版列表并邀请链接 |
firebaseappdistro.releases.update | 创建、删除和修改分布 创建和删除邀请链接 |
firebaseappdistro.testers.list | 检索项目中现有测试人员的列表 |
firebaseappdistro.testers.update | 在项目中创建和删除测试人员 |
firebaseappdistro.groups.list | 检索项目中现有测试人员组的列表 |
firebaseappdistro.groups.update | 在项目中创建和删除测试人员组 |
Firebase 身份验证权限
权限名称 | 描述 |
---|---|
firebaseauth.configs.create | 创建身份验证配置 |
firebaseauth.configs.get | 检索身份验证配置 |
firebaseauth.configs.getHashConfig | 获取用户帐户的密码哈希配置和密码哈希 |
firebaseauth.configs.getSecret | 在身份验证配置中获取客户端密码 |
firebaseauth.configs.update | 更新现有的身份验证配置 |
firebaseauth.users.create | 在身份验证中创建新用户 |
firebaseauth.users.createSession | 为登录用户创建会话 cookie |
firebaseauth.users.delete | 删除身份验证中的现有用户 |
firebaseauth.users.get | 检索现有身份验证用户的列表 |
firebaseauth.users.sendEmail | 向用户发送电子邮件 |
firebaseauth.users.update | 更新身份验证中的现有用户 |
Firebase A/B 测试权限(测试版)
权限名称 | 描述 |
---|---|
firebaseabt.experimentresults.get | 检索实验结果 |
firebaseabt.experiments.create | 创建新实验 |
firebaseabt.experiments.delete | 删除现有实验 |
firebaseabt.experiments.get | 检索现有实验的详细信息 |
firebaseabt.experiments.list | 检索现有实验的列表 |
firebaseabt.experiments.update | 更新现有实验 |
firebaseabt.projectmetadata.get | 检索分析元数据以设置实验 |
Cloud Firestore 权限
有关 Cloud Firestore 权限的列表和说明,请参阅Google Cloud 文档。
云存储权限
有关 Cloud Storage 权限的列表和说明,请参阅Google Cloud 文档。
Firebase 安全规则(Cloud Firestore 和 Cloud Storage)权限
权限名称 | 描述 |
---|---|
firebaserules.releases.create | 创建发布 |
firebaserules.releases.delete | 删除发布 |
firebaserules.releases.get | 检索发布 |
firebaserules.releases.getExecutable | 检索发布的二进制可执行负载 |
firebaserules.releases.list | 检索发布列表 |
firebaserules.releases.update | 更新版本的规则集参考 |
firebaserules.rulesets.create | 创建新规则集 |
firebaserules.rulesets.delete | 删除现有规则集 |
firebaserules.rulesets.get | 使用源检索规则集 |
firebaserules.rulesets.list | 查找规则集元数据(无来源) |
firebaserules.rulesets.test | 正确性测试源 |
Cloud Functions for Firebase 权限
有关 Cloud Functions 权限的列表和说明,请参阅IAM 文档。
请注意,功能的部署需要特定的权限配置,而标准的Firebase 预定义角色中并未包含这些配置。要部署函数,请使用以下选项之一:
将功能部署委托给项目所有者。
如果您仅部署非 HTTP 功能,则项目编辑器可以部署您的功能。
将功能部署委托给具有以下两个角色的项目成员:
- Cloud Functions 管理员角色 (
roles/cloudfunctions.admin
) - 服务帐户用户角色 (
roles/iam.serviceAccountUser
)
项目所有者可以使用 Google Cloud Console 或 gcloud CLI将这些角色分配给项目成员。有关此角色配置的详细步骤和安全影响,请参阅IAM 文档。
- Cloud Functions 管理员角色 (
Firebase 云消息传递权限
权限名称 | 描述 |
---|---|
cloudmessaging.messages.create | 通过 FCM HTTP API 和 Admin SDK 发送通知和数据消息 |
firebasenotifications.messages.create | 在通知编辑器中创建新消息 |
firebasenotifications.messages.delete | 删除通知编辑器中的现有消息 |
firebasenotifications.messages.get | 在通知编辑器中检索现有消息的详细信息 |
firebasenotifications.messages.list | 在通知编辑器中检索现有消息列表 |
firebasenotifications.messages.update | 更新通知编辑器中的现有消息 |
Firebase Crashlytics 权限
权限名称 | 描述 |
---|---|
firebasecrashlytics.config.get | 检索 Crashlytics 配置设置 |
firebasecrashlytics.config.update | 更新 Crashlytics 配置设置 |
firebasecrashlytics.data.get | 检索与 Crashlytics 问题和会话相关的指标 |
firebasecrashlytics.issues.get | 检索有关 Crashlytics 问题的详细信息,包括附加到问题的注释 |
firebasecrashlytics.issues.list | 检索 Crashlytics 问题列表 |
firebasecrashlytics.issues.update | 打开、关闭和忽略现有的 Crashlytics 问题 更新附加到问题的注释 |
firebasecrashlytics.sessions.get | 检索有关 Crashlytics 崩溃会话的详细信息 |
权限名称 | 描述 |
---|---|
firebasecrash.issues.update | 更新现有的 Crashlytics 问题、创建问题注释并设置速度警报 |
firebasecrash.reports.get | 检索现有的 Crashlytics 报告 |
Firebase 动态链接权限
权限名称 | 描述 |
---|---|
firebasedynamiclinks.domains.create | 创建新的动态链接域 |
firebasedynamiclinks.domains.delete | 删除现有的动态链接域 |
firebasedynamiclinks.domains.get | 检索现有动态链接域的详细信息 |
firebasedynamiclinks.domains.list | 检索现有动态链接域的列表 |
firebasedynamiclinks.domains.update | 更新现有的动态链接域 |
firebasedynamiclinks.links.create | 创建新的动态链接 |
firebasedynamiclinks.links.get | 检索现有动态链接的详细信息 |
firebasedynamiclinks.links.list | 检索现有动态链接列表 |
firebasedynamiclinks.links.update | 更新现有的动态链接 |
firebasedynamiclinks.stats.get | 检索动态链接统计信息 |
firebasedynamiclinks.destinations.list | 检索现有的动态链接目标 |
firebasedynamiclinks.destinations.update | 更新现有的动态链接目标 |
Firebase 托管权限
权限名称 | 描述 |
---|---|
firebasehosting.sites.create | 为 Firebase 项目创建新的托管资源 |
firebasehosting.sites.delete | 删除 Firebase 项目的现有托管资源 |
firebasehosting.sites.get | 检索 Firebase 项目的现有托管资源的详细信息 |
firebasehosting.sites.list | 检索 Firebase 项目的托管资源列表 |
firebasehosting.sites.update | 更新 Firebase 项目的现有托管资源 |
Firebase 应用内消息权限(测试版)
权限名称 | 描述 |
---|---|
firebaseinappmessaging.campaigns.create | 制作新的广告系列 |
firebaseinappmessaging.campaigns.delete | 删除现有广告系列 |
firebaseinappmessaging.campaigns.get | 检索现有活动的详细信息 |
firebaseinappmessaging.campaigns.list | 检索现有活动的列表 |
firebaseinappmessaging.campaigns.update | 更新现有的活动 |
Firebase ML 权限(测试版)
权限名称 | 描述 |
---|---|
firebaseml.compressionjobs.create | 创建新的压缩作业 |
firebaseml.compressionjobs.delete | 删除现有的压缩作业 |
firebaseml.compressionjobs.get | 检索现有压缩作业的详细信息 |
firebaseml.compressionjobs.list | 检索现有压缩作业的列表 |
firebaseml.compressionjobs.start | 开始压缩作业 |
firebaseml.compressionjobs.update | 更新现有的压缩作业 |
firebaseml.models.create | 创建新的 ML 模型 |
firebaseml.models.update | 更新现有的 ML 模型 |
firebaseml.models.delete | 删除现有的 ML 模型 |
firebaseml.models.get | 检索现有 ML 模型的详细信息 |
firebaseml.models.list | 检索现有 ML 模型的列表 |
firebaseml.modelversions.create | 创建新模型版本 |
firebaseml.modelversions.get | 检索现有模型版本的详细信息 |
firebaseml.modelversions.list | 检索现有模型版本的列表 |
firebaseml.modelversions.update | 更新现有模型版本 |
Firebase 性能监控权限
权限名称 | 描述 |
---|---|
firebaseperformance.config.create | 创建新问题阈值配置 |
firebaseperformance.config.delete | 删除现有问题阈值配置 |
firebaseperformance.config.update | 修改警报和现有问题阈值配置 |
firebaseperformance.data.get | 查看所有性能数据和问题阈值 |
Firebase 实时数据库权限
权限名称 | 描述 |
---|---|
firebasedatabase.instances.create | 创建新的数据库实例 |
firebasedatabase.instances.get | 检索现有数据库实例的元数据 对现有数据库实例中数据的只读访问 |
firebasedatabase.instances.list | 检索现有数据库实例的列表 |
firebasedatabase.instances.update | 对现有数据库实例中数据的完全读写访问 启用和禁用数据库实例 检索和修改现有数据库实例的安全规则 |
firebasedatabase.instances.disable | 禁用活动数据库实例 现有数据会保留,但无法进行读/写访问。 |
firebasedatabase.instances.reenable | 重新启用禁用的数据库实例 现有数据再次可供读取/写入访问。 |
firebasedatabase.instances.delete | 删除禁用的数据库实例 删除的数据库名称不能重复使用。 已删除数据库实例中的数据将在 20 天后永久删除。 |
firebasedatabase.instances.undelete | 在永久删除其数据之前取消删除已删除的数据库实例 已删除数据库实例中的数据将在实例删除 20 天后永久删除。 |
Firebase 远程配置权限
权限名称 | 描述 |
---|---|
cloudconfig.configs.get | 检索远程配置数据 |
cloudconfig.configs.update | 更新远程配置数据 |
Firebase 测试实验室权限
测试实验室需要访问 Cloud Storage 存储桶,因此它需要特定的权限配置,而这些权限并未全部包含在标准的Firebase 预定义角色中。要授予对测试实验室的访问权限,请使用以下选项之一:
对于从 Firebase 控制台启动的测试
在专用的独立 Firebase 项目中测试您的应用。
添加需要测试实验室访问权限的成员,然后使用Firebase 控制台为他们分配遗留项目角色。
- 要允许成员使用测试实验室运行测试,请分配项目编辑器或更高级别。
- 要允许成员在测试实验室中查看测试结果,请分配项目查看者或更高级别。
对于使用您自己的 Cloud Storage 存储桶从gcloud CLI或测试 API启动的测试
使用Google Cloud Console分配一对预定义角色(它们一起授予所需的权限集)。
要允许成员使用测试实验室运行测试,请同时分配:
- Firebase 测试实验室管理员 (
roles/cloudtestservice.testAdmin
) - Firebase 分析查看器 (
roles/firebase.analyticsViewer
)
- Firebase 测试实验室管理员 (
要允许成员在测试实验室中查看测试结果,请同时分配:
- Firebase 测试实验室查看器 (
roles/cloudtestservice.testViewer
) - Firebase 分析查看器 (
roles/firebase.analyticsViewer
)
- Firebase 测试实验室查看器 (
权限名称 | 描述 |
---|---|
cloudtestservice.environmentcatalog.get | 检索项目支持的测试环境的目录 |
cloudtestservice.matrices.create | 请求根据给定的规范运行一系列测试 |
cloudtestservice.matrices.get | 检索测试矩阵的状态 |
cloudtestservice.matrices.update | 更新未完成的测试矩阵 |
cloudtoolresults.executions.list | 检索历史的执行列表 |
cloudtoolresults.executions.get | 检索现有的执行 |
cloudtoolresults.executions.create | 创建一个新的执行 |
cloudtoolresults.executions.update | 更新现有执行 |
cloudtoolresults.histories.list | 检索历史列表 |
cloudtoolresults.histories.get | 检索现有历史记录 |
cloudtoolresults.histories.create | 创造新的历史 |
cloudtoolresults.settings.create | 创建新的工具结果设置 |
cloudtoolresults.settings.get | 检索现有工具结果设置 |
cloudtoolresults.settings.update | 更新工具结果设置 |
cloudtoolresults.steps.list | 检索执行步骤列表 |
cloudtoolresults.steps.get | 检索现有步骤 |
cloudtoolresults.steps.create | 创建一个新步骤 |
cloudtoolresults.steps.update | 更新现有步骤 |
与外部服务权限的集成
权限名称 | 描述 |
---|---|
firebaseextensions.configs.create | 为外部服务创建新的扩展配置 (Firebase 控制台 > 项目设置 > 集成) |
firebaseextensions.configs.delete | 删除外部服务的现有扩展配置 (Firebase 控制台 > 项目设置 > 集成) |
firebaseextensions.configs.list | 检索外部服务的扩展配置列表 (Firebase 控制台 > 项目设置 > 集成) |
firebaseextensions.configs.update | 更新外部服务的现有扩展配置 (Firebase 控制台 > 项目设置 > 集成) |