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,请先按照安装说明进行安装。
使用
gcloud
CLI 进行身份验证:gcloud auth application-default login
设置项目 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)
如果可能,请使用应用默认凭据向插件提供凭据。
通常,这涉及生成服务账号密钥并将这些凭据部署到生产环境。
按照相关说明设置服务账号密钥。
确保该服务账号具有以下角色:
roles/monitoring.metricWriter
roles/cloudtrace.agent
roles/logging.logWriter
将凭据文件部署到生产环境(不要签入源代码)
将
GOOGLE_APPLICATION_CREDENTIALS
环境变量设置为凭据文件的路径。GOOGLE_APPLICATION_CREDENTIALS = "path/to/your/key/file"
不确定哪个服务账号是正确的?请参阅查找或创建服务账号部分。
在 Google Cloud 外部部署(不使用 ADC)
在某些无服务器环境中,您可能无法部署凭据文件。
按照相关说明设置服务账号密钥。
确保该服务账号具有以下角色:
roles/monitoring.metricWriter
roles/cloudtrace.agent
roles/logging.logWriter
下载凭据文件。
将凭据文件的内容分配给
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"
}'
不确定哪个服务账号是正确的?请参阅查找或创建服务账号部分。
查找或创建您的服务账号
如需查找适当的服务账号,请执行以下操作:
- 前往 Google Cloud 控制台中的“服务账号”页面
- 选择您的项目
- 找到相应的服务账号。常见的默认服务账号如下所示:
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 控制台中创建服务账号。