身份验证与授权

Firebase 遥测插件需要 Google Cloud 或 Firebase 项目 ID 和应用凭据。

如果您还没有 Google Cloud 项目和账号,可以在 Firebase 控制台Google Cloud 控制台中进行设置。所有 Firebase 项目 ID 都是 Google Cloud 项目 ID。

启用 API

在添加此插件之前,请确保您的项目已启用以下 API:

这些 API 应该会在您的项目的 API 信息中心内列出。点击此处可详细了解如何启用和停用 API

用户身份验证

如需将遥测数据从本地开发环境导出到 Firebase Genkit Monitoring,您需要使用 Google Cloud 进行身份验证。

以自己的身份进行身份验证的最简单方法是使用 gcloud CLI,它会通过应用默认凭据 (ADC) 自动将您的凭据提供给框架。

如果您尚未安装 gcloud CLI,请先按照安装说明进行安装。

  1. 使用 gcloud CLI 进行身份验证:

    gcloud auth application-default login
  2. 设置项目 ID

    gcloud config set project PROJECT_ID

部署到 Google Cloud

如果您将代码部署到 Google Cloud 或 Firebase 环境(Cloud Functions、Cloud Run、App Hosting 等),系统会使用应用默认凭据自动发现项目 ID 和凭据。

您需要使用 IAM 控制台向运行代码的服务账号(即“附加的服务账号”)应用以下角色:

  • roles/monitoring.metricWriter
  • roles/cloudtrace.agent
  • roles/logging.logWriter

不确定哪个服务账号是正确的?请参阅查找或创建服务账号部分。

在 Google Cloud 外部部署(使用 ADC)

如果可能,请使用应用默认凭据向插件提供凭据。

通常,这涉及生成服务账号密钥并将这些凭据部署到生产环境。

  1. 按照相关说明设置服务账号密钥

  2. 确保该服务账号具有以下角色:

    • roles/monitoring.metricWriter
    • roles/cloudtrace.agent
    • roles/logging.logWriter
  3. 将凭据文件部署到生产环境(不要签入源代码)

  4. GOOGLE_APPLICATION_CREDENTIALS 环境变量设置为凭据文件的路径。

    GOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"

不确定哪个服务账号是正确的?请参阅查找或创建服务账号部分。

在 Google Cloud 外部部署(不使用 ADC)

在某些无服务器环境中,您可能无法部署凭据文件。

  1. 按照相关说明设置服务账号密钥

  2. 确保该服务账号具有以下角色:

    • roles/monitoring.metricWriter
    • roles/cloudtrace.agent
    • roles/logging.logWriter
  3. 下载凭据文件。

  4. 将凭据文件的内容分配给 GCLOUD_SERVICE_ACCOUNT_CREDS 环境变量,如下所示:

GCLOUD_SERVICE_ACCOUNT_CREDS='{
  "type": "service_account",
  "project_id": "your-project-id",
  "private_key_id": "your-private-key-id",
  "private_key": "your-private-key",
  "client_email": "your-client-email",
  "client_id": "your-client-id",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "your-cert-url"
}'

不确定哪个服务账号是正确的?请参阅查找或创建服务账号部分。

查找或创建您的服务账号

如需查找适当的服务账号,请执行以下操作:

  1. 前往 Google Cloud 控制台中的“服务账号”页面
  2. 选择您的项目
  3. 找到相应的服务账号。常见的默认服务账号如下所示:
  • Firebase Functions 和 Cloud Run

    PROJECT ID-compute@developer.gserviceaccount.com

  • App Engine

    PROJECT ID@appspot.gserviceaccount.com

  • 应用托管

    firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com

如果您在 Google 生态系统之外进行部署,或者不想使用默认服务账号,可以在 Google Cloud 控制台中创建服务账号