您需要通过角色来为项目成员授予权限。一个角色对应一组权限。为项目成员分配某个角色后,该成员将获得该角色包含的所有权限。
本页面介绍了 Firebase 支持的角色中可能列出的权限所允许的操作。这些权限分为两类:
所有角色或执行 Firebase 中的特定操作所需的 Identity and Access Management (IAM) 权限
所需权限
Firebase IAM 包含以下权限:
如需查看针对 Firebase 产品或服务的权限的总体列表和说明,请参阅 Firebase 产品专用 IAM 权限中的相应部分。
所有角色都包含的必需权限
下表列出的是使用任何 Firebase 产品或服务都需要的权限。
这些权限自动包含在每个 Firebase 预定义角色中。
权限 | 说明 |
---|---|
授予检索 Firebase 项目信息的权限 | |
授予检索 Firebase 项目信息的权限 | |
授予检查 Google API 状态和运行 Firebase CLI 命令的权限 |
Firebase 服务专用操作所需的权限
下表列出的是执行某些 Firebase 服务专用操作所需的权限。
需要时,这些权限将自动包含在每个 Firebase 预定义角色中。
操作 | 所需权限 |
---|---|
访问与协作工具(包括 Slack、Jira 和 PagerDuty)集成的 Firebase 项目 | firebaseextensions.configs.* |
查看来自 StackDriver 的用量和分析数据 | monitoring.timeSeries.list |
运行 Firebase CLI 命令 如需了解详情,请参阅关于 Runtime Configurator 访问权限的 Google Cloud 文档。 |
runtimeconfig.* |
Firebase 管理专用操作所需的权限
下表列出的是执行某些 Firebase 管理专用操作所需的额外权限。
管理权限和相关操作 | 所需的额外权限 |
---|---|
firebase.billingPlans.update | |
更改 Firebase 项目的结算方案 | resourcemanager.projects.createBillingAssignment resourcemanager.projects.deleteBillingAssignment |
firebase.projects.delete | |
删除 Firebase 项目 | resourcemanager.projects.delete |
firebase.projects.update | |
将 Firebase 资源添加到现有 Google Cloud 项目 | resourcemanager.projects.get serviceusage.services.enable serviceusage.services.get |
更改 Firebase 项目的名称 | resourcemanager.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 以及与此安装关联的数据(了解详情) |
“Google Analytics”权限
以下权限允许访问与 Firebase 项目相关联的 Analytics 媒体资源。它们允许 Firebase 项目成员访问 Analytics 数据,包括受众群体、用户属性、漏斗、报告、转化等。
权限名称 | 说明 |
---|---|
firebaseanalytics.resources.googleAnalyticsEdit | 默认会授予针对关联的 Analytics 媒体资源的 Analytics Editor 角色 |
firebaseanalytics.resources.googleAnalyticsAdditionalAccess | 默认会授予针对关联的 Analytics 媒体资源的 Analytics Marketer 角色 |
firebaseanalytics.resources.googleAnalyticsReadAndAnalyze | 默认会授予针对关联的 Analytics 媒体资源的 Analytics Viewer 角色 |
firebaseanalytics.resources.googleAnalyticsRestrictedAccess | 默认会授予针对关联的 Analytics 媒体资源的 Analytics Viewer 角色,但不包括对收入数据和费用数据的访问权限 |
“Firebase App Check”权限
权限名称 | 说明 |
---|---|
firebaseappcheck.appAttestConfig.get | 检索应用的 App Attest 配置 |
firebaseappcheck.appAttestConfig.update | 更新应用的 App Attest 配置 |
firebaseappcheck.appCheckTokens.verify | 验证为 Firebase 项目颁发的 App Check 令牌 |
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 App Distribution”权限
权限名称 | 说明 |
---|---|
firebaseappdistro.releases.list | 检索现有发行版和邀请链接的列表 |
firebaseappdistro.releases.update | 创建、删除和修改发行版 创建和删除邀请链接 |
firebaseappdistro.testers.list | 检索项目中现有测试人员的列表 |
firebaseappdistro.testers.update | 创建和删除项目中的测试人员 |
firebaseappdistro.groups.list | 检索项目中现有测试人员群组的列表 |
firebaseappdistro.groups.update | 创建和删除项目中的测试人员群组 |
“Firebase Authentication”权限
权限名称 | 说明 |
---|---|
firebaseauth.configs.create | 创建 Authentication 配置 |
firebaseauth.configs.get | 检索 Authentication 配置 |
firebaseauth.configs.getHashConfig | 获取用户账号的密码哈希配置和密码哈希 |
firebaseauth.configs.getSecret | 获取 Authentication 配置中的客户端密钥 |
firebaseauth.configs.update | 更新现有 Authentication 配置 |
firebaseauth.users.create | 在 Authentication 中创建新用户 |
firebaseauth.users.createSession | 为已登录用户创建会话 Cookie |
firebaseauth.users.delete | 删除 Authentication 中的现有用户 |
firebaseauth.users.get | 检索现有 Authentication 用户列表 |
firebaseauth.users.sendEmail | 向用户发送电子邮件 |
firebaseauth.users.update | 更新 Authentication 中的现有用户 |
Firebase A/B Testing 权限(Beta 版)
权限名称 | 说明 |
---|---|
firebaseabt.experimentresults.get | 检索实验结果 |
firebaseabt.experiments.create | 创建新实验 |
firebaseabt.experiments.delete | 删除现有实验 |
firebaseabt.experiments.get | 检索现有实验的详细信息 |
firebaseabt.experiments.list | 检索现有实验的列表 |
firebaseabt.experiments.update | 更新现有实验 |
firebaseabt.projectmetadata.get | 检索用于设置实验的分析元数据 |
Firebase App Hosting 权限(Beta 版)
权限名称 | 说明 |
---|---|
firebaseapphosting.backends.create | 为 Firebase 项目创建新的 App Hosting 后端。 |
firebaseapphosting.backends.delete | 从 Firebase 项目中删除现有的 App Hosting 后端。 |
firebaseapphosting.backends.get | 检索 Firebase 项目中特定 App Hosting 后端的相关信息。 |
firebaseapphosting.backends.list | 列出 Firebase 项目中所有可用的 App Hosting 后端。 |
firebaseapphosting.backends.update | 修改现有 App Hosting 后端的配置或设置。 |
firebaseapphosting.builds.create | 在 Firebase 项目中为 App Hosting 后端启动新的构建流程。 |
firebaseapphosting.builds.delete | 删除 App Hosting 后端中的现有 build。 |
firebaseapphosting.builds.get | 检索 App Hosting 后端中现有 build 的详细信息。 |
firebaseapphosting.builds.list | 列出 Firebase 项目中与 App Hosting 后端关联的所有 build。 |
firebaseapphosting.builds.update | 修改现有未最终确定的 App Hosting build 的配置。 |
firebaseapphosting.domains.create | 在 Firebase 项目中为 App Hosting 后端创建新的网域关联。 |
firebaseapphosting.domains.delete | 从 App Hosting 后端移除域名关联。 |
firebaseapphosting.domains.get | 检索与 App Hosting 网站关联的特定网域的相关信息。 |
firebaseapphosting.domains.list | 列出与 App Hosting 关联的所有网域。 |
firebaseapphosting.domains.update | 修改与 App Hosting 后端关联的网域的设置或配置。 |
firebaseapphosting.rollouts.create | 启动新的发布流程,将现有 build 升级为该 App Hosting 后端当前提供的版本。 |
firebaseapphosting.rollouts.get | 检索有关特定 App Hosting 发布的信息。 |
firebaseapphosting.rollouts.list | 列出与 App Hosting 后端关联的所有发布。 |
firebaseapphosting.traffic.get | 检索 App Hosting 网站的当前流量拆分和发布政策。 |
firebaseapphosting.traffic.list | 功能与“firebaseapphosting.traffic.get”相同,但增加了跨您拥有此权限的后端检索列表的功能。 |
firebaseapphosting.traffic.update | 修改 App Hosting 后端的当前流量分配和发布政策。 |
“Cloud Firestore”权限
如需查看 Cloud Firestore 权限的列表和说明,请参阅 Google Cloud 文档。
“Cloud Storage”权限
如需查看 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 预定义角色中。如需部署函数,请使用以下任一选项:
将函数部署委托给项目 Owner。
如果您仅部署非 HTTP 函数,则项目 Editor 可以部署您的函数。
将函数部署委托给具有以下两个角色的项目成员:
- Cloud Functions Admin 角色(
roles/cloudfunctions.admin
) - Service Account User 角色 (
roles/iam.serviceAccountUser
)
项目 Owner 可以使用 Google Cloud 控制台或 gcloud CLI 将这些角色分配给项目成员。如需了解此角色配置的详细步骤和安全影响,请参阅 IAM 文档。
- Cloud Functions Admin 角色(
Firebase Messaging 宣传活动权限
这些权限适用于 Firebase Cloud Messaging 和 Firebase In-App Messaging 的宣传活动。
权限名称 | 说明 |
---|---|
firebasemessagingcampaigns.campaigns.create | 创建新的宣传活动 |
firebasemessagingcampaigns.campaigns.delete | 删除现有宣传活动 |
firebasemessagingcampaigns.campaigns.get | 检索现有宣传活动的详细信息 |
firebasemessagingcampaigns.campaigns.list | 检索现有宣传活动的列表 |
firebasemessagingcampaigns.campaigns.update | 更新现有宣传活动 |
firebasemessagingcampaigns.campaigns.start | 启动现有宣传活动 |
firebasemessagingcampaigns.campaigns.stop | 更新现有广告系列 |
“Firebase Cloud Messaging”权限
权限名称 | 说明 |
---|---|
cloudmessaging.messages.create | 通过 FCM HTTP API 和 Admin SDK 发送通知和数据消息 |
权限名称 | 说明 |
---|---|
firebasenotifications.messages.create | 在 Notifications Composer 中创建新消息 |
firebasenotifications.messages.delete | 在 Notifications Composer 中删除现有消息 |
firebasenotifications.messages.get | 在 Notifications Composer 中检索现有消息的详细信息 |
firebasenotifications.messages.list | 在 Notifications Composer 中检索现有消息的列表 |
firebasenotifications.messages.update | 在 Notifications Composer 中更新现有消息 |
“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 Dynamic Links”权限
权限名称 | 说明 |
---|---|
firebasedynamiclinks.domains.create | 创建新的 Dynamic Links 网域 |
firebasedynamiclinks.domains.delete | 删除现有 Dynamic Links 网域 |
firebasedynamiclinks.domains.get | 检索现有 Dynamic Links 网域的详细信息 |
firebasedynamiclinks.domains.list | 检索现有 Dynamic Links 网域的列表 |
firebasedynamiclinks.domains.update | 更新现有 Dynamic Links 网域 |
firebasedynamiclinks.links.create | 创建新的 Dynamic Links |
firebasedynamiclinks.links.get | 检索现有 Dynamic Links 的详细信息 |
firebasedynamiclinks.links.list | 检索现有 Dynamic Links 列表 |
firebasedynamiclinks.links.update | 更新现有 Dynamic Links |
firebasedynamiclinks.stats.get | 检索 Dynamic Links 统计信息 |
firebasedynamiclinks.destinations.list | 检索现有 Dynamic Links 目标网址 |
firebasedynamiclinks.destinations.update | 更新现有 Dynamic Links 目标网址 |
Firebase Extensions 发布权限
权限名称 | 说明 |
---|---|
firebaseextensionspublisher.extensions.create | 上传新版扩展程序 |
firebaseextensionspublisher.extensions.delete | 删除或弃用扩展程序版本 |
firebaseextensionspublisher.extensions.get | 检索扩展程序版本的详细信息 |
firebaseextensionspublisher.extensions.list | 列出此发布商项目上传的所有扩展程序版本 |
“Firebase Hosting”权限
权限名称 | 说明 |
---|---|
firebasehosting.sites.create | 为 Firebase 项目创建新的 Hosting 资源 |
firebasehosting.sites.delete | 删除 Firebase 项目的现有 Hosting 资源 |
firebasehosting.sites.get | 检索 Firebase 项目的现有 Hosting 资源的详细信息 |
firebasehosting.sites.list | 检索 Firebase 项目的 Hosting 资源列表 |
firebasehosting.sites.update | 更新 Firebase 项目的现有 Hosting 资源 |
Firebase In-App Messaging 权限(Beta 版)
权限名称 | 说明 |
---|---|
firebaseinappmessaging.campaigns.create | 创建新的宣传活动 |
firebaseinappmessaging.campaigns.delete | 删除现有宣传活动 |
firebaseinappmessaging.campaigns.get | 检索现有宣传活动的详细信息 |
firebaseinappmessaging.campaigns.list | 检索现有宣传活动的列表 |
firebaseinappmessaging.campaigns.update | 更新现有广告系列 |
Firebase ML 权限(Beta 版)
权限名称 | 说明 |
---|---|
firebaseml.models.create | 创建新的机器学习模型 |
firebaseml.models.update | 更新现有机器学习模型 |
firebaseml.models.delete | 删除现有机器学习模型 |
firebaseml.models.get | 检索现有机器学习模型的详细信息 |
firebaseml.models.list | 检索现有机器学习模型的列表 |
firebaseml.modelversions.create | 创建新的模型版本 |
firebaseml.modelversions.get | 检索现有模型版本的详细信息 |
firebaseml.modelversions.list | 检索现有模型版本的列表 |
firebaseml.modelversions.update | 更新现有模型版本 |
“Firebase Performance Monitoring”权限
权限名称 | 说明 |
---|---|
firebaseperformance.config.create | 创建新的问题阈值配置 |
firebaseperformance.config.delete | 删除现有问题阈值配置 |
firebaseperformance.config.update | 修改提醒和现有问题阈值配置 |
firebaseperformance.data.get | 查看所有性能数据和问题阈值的值 |
“Firebase Realtime Database”权限
权限名称 | 说明 |
---|---|
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 Remote Config”权限
权限名称 | 说明 |
---|---|
cloudconfig.configs.get | 检索 Remote Config 数据 |
cloudconfig.configs.update | 更新 Remote Config 数据 |
“Firebase Test Lab”权限
Test Lab 需要拥有对 Cloud Storage 存储桶的访问权限,因此需要特定的权限配置,而标准 Firebase 预定义角色并未完全拥有这些权限。若要授予对 Test Lab 的访问权限,请使用下列某个选项:
对于从 Firebase 控制台启动的测试
在单独的专用 Firebase 项目中测试您的应用。
添加需要 Test Lab 访问权限的成员,然后使用 Firebase 控制台向他们分配传统项目角色。
- 若要允许成员使用 Test Lab 运行测试,请分配项目 Editor 或权限更高的角色。
- 若要允许成员在 Test Lab 中查看测试结果,请分配项目 Viewer 或权限更高的角色。
对于使用自己的 Cloud Storage 存储桶从 gcloud CLI、Testing API 或 Gradle 管理的设备启动的测试
使用 Google Cloud 控制台分配一对预定义角色(两者共同授予所需的权限集)。
若要允许成员使用 Test Lab 运行测试,请同时分配以下两个角色:
- Firebase Test Lab Admin (
roles/cloudtestservice.testAdmin
) - Firebase Analytics Viewer (
roles/firebase.analyticsViewer
)
- Firebase Test Lab Admin (
若要允许成员在 Test Lab 中查看测试结果,请同时分配以下两个角色:
- Firebase Test Lab Viewer (
roles/cloudtestservice.testViewer
) - Firebase Analytics Viewer (
roles/firebase.analyticsViewer
)
- Firebase Test Lab Viewer (
权限名称 | 说明 |
---|---|
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 控制台 > 项目设置 > 集成) |