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 を生成します。
ウェブ SDK、Android SDK、iOS 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> |
データベースに対する読み取り / 書き込みアクセス権。 スキーマ内のすべてのテーブルに対して SELECT 、INSERT 、UPDATE 、DELETE 、TRUNCATE オペレーションを実行できます。 |
データベース内のデータの変更が必要なユーザーまたはサービスに適しています。 | ○ |
所有者 | 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 以外の環境の自動検出をオーバーライドします。