認証と承認

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

  • App Hosting

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

Google エコシステムの外部にデプロイする場合や、デフォルトのサービス アカウントを使用しない場合は、Google Cloud コンソールでサービス アカウントを作成できます。