Data Connect 用の Firebase CLI コマンド リファレンス

Firebase CLI は、コマンドラインから Firebase のプロダクトとサービスを管理、構成できるツールです。

CLI には、新しい Data Connect プロジェクトの作成、対応するローカル作業ディレクトリの初期化、Data Connect エミュレータの設定、Data Connect リソースの一覧表示、クライアント SDK の生成など、さまざまな Data Connect タスクを実行するために使用できるコマンドがあります。

設定コマンド

Data Connect を Firebase プロジェクトに追加する

firebase init

firebase init を使用して、新しいローカル プロジェクト構成を設定します。このワークフローでは、ディレクトリに Firebase 構成ファイルを作成または更新します。

firebase init

firebase init フローでは、サービスとデータベースの設定、必要に応じて Data Connect エミュレータのインストール、生成された SDK の構成について説明します。

サービスとデータベースの設定

プロダクトの設定に dataconnect を選択すると、新しいサービス名とロケーションの入力を求められます。また、既存の Cloud SQL for PostgreSQL インスタンスを作成するか、新しいインスタンスを作成するかを求められます。

既存のインスタンスがリンクされている場合、CLI は IAM 認証やパブリック IP アドレスなど、互換性のある設定を確認します。

Local Emulator Suite の設定

CLI フローでは、Data Connect エミュレータなどのエミュレータをセットアップできます。

Data Connect エミュレータ コマンド

Data Connect エミュレータを起動する

エミュレータ:start/exec

firebase emulators:start/exec

start でインタラクティブ モード、または exec でスクリプト ドリブンの非インタラクティブ モードで、Local Emulator Suite バージョンの Data Connect エミュレータを使用します。

スキーマとコネクタの管理コマンド

このセクションでは、スキーマとコネクタの管理に使用するコマンドの CLI リファレンス情報を提供します。

これらのコマンドに関連するユースケースと推奨されるベスト プラクティスについては、スキーマとコネクタの管理ガイドをご覧ください。

スキーマとコネクタ リソースをデプロイする

デプロイ

firebase deploy

このコマンドは、firebase.json にインデックス登録されている Data Connect サービスのリソースをデプロイします。必要に応じて、スキーマ移行が実行されます。

コマンド 説明

firebase deploy

フラグ 説明

–-only dataconnect

このプロジェクトのすべての Data Connect サービスにスキーマとコネクタをデプロイしますが、他の Firebase プロダクトのリソースはデプロイしません。

–-only dataconnect:serviceId

指定した Data Connect サービスのスキーマとコネクタをデプロイします。

–-only dataconnect:serviceId:connectorId

指定された Data Connect サービスに単一のコネクタをデプロイします。

–-only dataconnect:serviceId:schema

指定した Data Connect サービスのスキーマをデプロイします。

–-only フラグを使用すると、カンマ区切りの値を渡して、必要なリソースのサブセットをデプロイできます。

firebase deploy --only dataconnect:service1:schema,dataconnect:service2

Data Connect サービス、スキーマ、コネクタを一覧表示する

dataconnect:services:list

firebase dataconnect:services:list

このコマンドは、プロジェクトにデプロイされたサービス、スキーマ、コネクタに関する基本情報を出力します。

SQL スキーマを比較して移行する

dataconnect:sql:diff

firebase dataconnect:sql:diff

このコマンドは、サービスのローカル スキーマと、対応する Cloud SQL データベースの現在のスキーマを比較します。データベースを新しいスキーマに移行するために実行されるコマンドが出力されます。

コマンド 説明

firebase dataconnect:sql:diff

フラグ / パラメータ 説明

serviceId

サービスを指定します。省略すると、firebase.json 内のすべてのサービスの差分を出力します。

dataconnect:sql:migrate

firebase dataconnect:sql:migrate

このコマンドは、ローカル スキーマの変更をサービスの Cloud SQL データベースに適用します。

デフォルトの dataconnect.yaml ファイルで新しいローカル Data Connect プロジェクトをセットアップすると、変更を実行する前に、dataconect:sql:migrate コマンドの動作により、必要な変更を求めるプロンプトが表示され、オプションの変更があればプロンプトが表示されます。厳格モードまたは互換モードでスキーマを移行するで説明されているように、dataconnect.yaml 構成を更新することで、この動作を変更して、オプションの変更を常に含めるか、常に無視するようにできます。

インタラクティブ環境では、CLI に各移行 SQL ステートメント(および破壊的かどうか)が表示され、適用する変更を求めるプロンプトが表示されます。--force フラグを渡すと、すべてのプロンプトを受け入れるのと同じ結果になります。

インタラクティブでない環境の場合:

  • --force がない場合、破壊的でない変更のみが実行されます。破壊的な変更がある場合、CLI は中止され、変更は行われません。
  • --force を使用すると、すべての変更が行われます。破壊的な変更が含まれている場合は、--force フラグが指定されていない限り、変更が印刷され、続行するかどうかのプロンプトが表示されます。
コマンド 説明

firebase dataconnect:sql:migrate

フラグ 説明

serviceId

指定したサービスのデータベースを移行します。プロジェクトにサービスが 1 つしかない場合、serviceId は推論されます。

--force

プロンプトを自動的に承認する。

他の --only フラグと同様に、カンマで区切って複数のサービスを提供できます。

厳密モードまたは互換モードでスキーマを移行する

Data Connect スキーマ移行には、厳密と互換性の 2 つの異なるスキーマ検証モードがあります。厳格モードの検証では、アプリケーション スキーマをデプロイする前に、データベース スキーマがアプリケーション スキーマと完全に一致している必要があります。互換モードの検証では、データベース スキーマがアプリケーション スキーマと互換性がある必要があります。つまり、アプリケーション スキーマで使用されていないデータベース内の要素は変更されません。

これらのスキーマ検証モードとスキーマ移行のベスト プラクティスについては、スキーマとコネクタの管理ガイドをご覧ください。

検証モードは、dataconnect.yaml ファイルの schemaValidation キーを使用して定義します。schemaValidation が指定されていない場合、CLI は互換性のある変更を適用し、厳密な変更を実行する前にプロンプトを表示します。構成リファレンスをご覧ください。

SDK コマンド

SDK を生成する

dataconnect:sdk:generate

firebase dataconnect:sdk:generate

このコマンドは、connector.yaml で宣言された型付き SDK を生成します。

ウェブ SDKAndroid SDKiOS SDK のガイドもご覧ください。

コマンド 説明

firebase dataconnect:sdk:generate

フラグ 説明

- 視聴

スキーマとコネクタの GQL ファイルに変更を保存するたびに、プロセスの実行が継続され、新しい SDK が生成されます。

生成に失敗した場合、エラーが stdout に出力されます。生成されたコードは変更されません。コマンドは引き続き実行されます。

–-only connectorId:platform

1 つのプラットフォームと 1 つのコネクタの SDK のみを生成します。

–only フラグを使用すると、カンマ区切りの値を渡すことができます。

firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin

Cloud SQL 管理コマンド

Cloud SQL の SQL ロールを付与する

dataconnect:sql:grant

firebase dataconnect:sql:grant

Data Connect は、Cloud SQL でホストされている独自の PostgreSQL インスタンス上で動作します。場合によっては、データベースに直接アクセスして、Data Connect アプリによって生成されたデータをクエリまたは更新する必要がある場合があります。これを行うには、このセクションで定義されているロールのいずれかを、必要なユーザーまたはサービス アカウントに付与する必要があります。

付与されたロールの詳細については、PostgreSQL ユーザーロールをご覧ください。

ロール SQL ロール 権限 用途 付与可能
リーダー firebasereader_<db_name>_<schema_name> データベースに対する読み取り専用アクセス権。

指定されたスキーマ内のすべてのテーブルに対して SELECT オペレーションを実行できます。
データの取得は必要だが、変更は必要としないユーザーやサービスに最適です。
ライター firebasewriter_<db_name>_<schema_name> データベースに対する読み取り / 書き込みアクセス権。

スキーマ内のすべてのテーブルに対して SELECTINSERTUPDATEDELETETRUNCATE オペレーションを実行できます。
データベース内のデータの変更が必要なユーザーまたはサービスに適しています。
所有者 firebaseowner_<db_name>_<schema_name> スキーマ オーナー。

スキーマ内のすべてのテーブルとシーケンスに対するすべての権限を持ちます。
このロールは、IAM roles/cloudsql.client ロールと組み合わせて、データベースの移行を行う権限を付与します。

たとえば、firebase dataconnect:sql:migrate を呼び出す場合。
スーパーユーザー cloudsqlsuperuser データベースに対する完全な権限を持つ組み込みのスーパーユーザーロール。

オーナー権限に加えて、スキーマの作成、スキーマの削除、拡張機能のインストール、その他の管理タスクを実行できます。

CLI で「firebasesuperuser」としてログインすることでアクセスできます。
拡張機能のインストール、初期スキーマの作成、付与可能な SQL ロールの他のユーザーへの付与に必要です。

管理者以外のユーザーにスーパーユーザー権限が必要な場合、移行は失敗し、データベース管理者(roles/cloudsql.admin を持つユーザー)に権限のある SQL コマンドを実行するよう依頼するよう求めるメッセージが表示されます。
roles/cloudsql.admin を持つユーザーに付与され、Firebase CLI から直接付与することはできません。
コマンド 説明

firebase dataconnect:sql:grant

フラグ/パラメータ 説明

-R、--role ロール

付与する SQL ロール(オーナー、ライター、リーダーのいずれか)。

-E、--email email_address

ロールを付与するユーザーまたはサービス アカウントのメールアドレス。

グローバル オプション

次のグローバル オプションはすべてのコマンドに適用されます。

  • --json は、他のツールで解析できるように CLI 出力を JSON に切り替えます。
  • --noninteractive--interactive は、必要に応じて TTY 以外の環境の自動検出をオーバーライドします。