Firebase CLI(GitHub)は、Firebase プロジェクトの管理、表示、デプロイを行うさまざまなツールを提供します。
Firebase CLI を使用する前に、Firebase プロジェクトを設定してください。
CLI を設定または更新する
Firebase CLI をインストールする
ご使用のオペレーティング システム、経験レベル、ユースケースに合わせて、Firebase CLI をインストールする方法を選ぶことができます。CLI のインストール方法に関係なく、利用できる機能と firebase
コマンドは同じです。
Windows
Windows 用の Firebase CLI をインストールするには、次のいずれかのオプションを選びます。
オプション | 説明 | 推奨ユーザー |
---|---|---|
スタンドアロン バイナリ | CLI のスタンドアロン バイナリをダウンロードします。ダウンロードしたら、実行可能ファイルにアクセスして、firebase コマンドを実行できるシェルを開きます。
|
新規デベロッパー Node.js を使用していない、または使い慣れていないデベロッパー |
npm | npm(Node Package Manager)を使用して CLI をインストールし、グローバルに使用可能な firebase コマンドを有効にします。
|
Node.js を使用するデベロッパー |
スタンドアロン バイナリ
Firebase CLI のバイナリをダウンロードして実行する方法は次のとおりです。
Windows 用の Firebase CLI バイナリをダウンロードします。
バイナリにアクセスして、
firebase
コマンドを実行できるシェルを開きます。続けてログインして CLI をテストします。
npm
npm
(Node Package Manager)で Firebase CLI をインストールする手順は次のとおりです。
nvm-windows(Node Version Manager)を使用して Node.js をインストールします。Node.js をインストールすると、
npm
コマンドツールが自動的にインストールされます。npm
を使用して Firebase CLI をインストールするには、次のコマンドを実行します。npm install -g firebase-tools
これにより、グローバルに使用できる
firebase
コマンドが有効になります。続けてログインして CLI をテストします。
macOS または Linux
macOS または Linux 用の Firebase CLI をインストールするには、次のいずれかのオプションを選びます。
オプション | 説明 | 推奨ユーザー |
---|---|---|
自動インストール スクリプト | オペレーティング システムの自動検出、最新の CLI リリースのダウンロード、グローバルに使用可能な firebase コマンドの有効化を行う、単一のコマンドを実行します。
|
新規デベロッパー Node.js を使用していない、または使い慣れていないデベロッパー CI / CD 環境での自動デプロイ |
スタンドアロン バイナリ | CLI のスタンドアロン バイナリをダウンロードします。ダウンロードしたら、ワークフローに合わせてバイナリを構成し、実行できます。 | CLI を使用して完全にカスタマイズできるワークフロー |
npm | npm(Node Package Manager)を使用して CLI をインストールし、グローバルに使用可能な firebase コマンドを有効にします。
|
Node.js を使用するデベロッパー |
自動インストール スクリプト
自動インストール スクリプトで Firebase CLI をインストールする手順は次のとおりです。
次の cURL コマンドを実行します。
curl -sL https://firebase.tools | bash
このスクリプトは、ご使用のオペレーティング システムを自動的に検出し、最新の Firebase CLI リリースをダウンロードしてから、グローバルに使用可能な
firebase
コマンドを有効にします。続けてログインして CLI をテストします。
自動インストール スクリプトのその他の例や詳細については、firebase.tools にあるスクリプトのソースコードをご覧ください。
スタンドアロン バイナリ
OS 固有の Firebase CLI のバイナリをダウンロードして実行する手順は次のとおりです。
(省略可)グローバルに使用可能な
firebase
コマンドを設定します。chmod +x ./firebase_tools
を実行して、バイナリを実行可能にします。- バイナリのパスを PATH に追加します。
続けてログインして CLI をテストします。
npm
npm
(Node Package Manager)で Firebase CLI をインストールする手順は次のとおりです。
nvm(Node Version Manager)を使用して Node.js をインストールします。
Node.js をインストールすると、npm
コマンドツールが自動的にインストールされます。npm
を使用して Firebase CLI をインストールするには、次のコマンドを実行します。npm install -g firebase-tools
これにより、グローバルに使用できる
firebase
コマンドが有効になります。続けてログインして CLI をテストします。
Firebase CLI にログインしてテストする
CLI をインストールしたら、認証する必要があります。その後で Firebase プロジェクトを一覧表示して認証を確認できます。
Google アカウントで Firebase にログインするには、次のコマンドを実行します。
firebase login
このコマンドにより、ローカルマシンが Firebase に接続され、Firebase プロジェクトへのアクセスが許可されます。
Firebase プロジェクトを一覧表示し、CLI が正しくインストールされていて、アカウントにアクセスしていることをテストします。次のコマンドを実行します。
firebase projects:list
Firebase コンソールと同じ Firebase プロジェクトが表示されているはずです。
最新の CLI バージョンに更新する
一般には、Firebase CLI の最新バージョンを使用することをおすすめします。
CLI バージョンの更新方法は、使用しているオペレーティング システムと CLI のインストール方法によって異なります。
Windows
- スタンドアロン バイナリ: 新しいバージョンをダウンロードして、システム上のバージョンを置き換えます。
- npm:
npm install -g firebase-tools
を実行します。
macOS
- 自動インストール スクリプト:
curl -sL https://firebase.tools | upgrade=true bash
を実行します。 - スタンドアロン バイナリ: 新しいバージョンをダウンロードして、システム上のバージョンを置き換えます。
- npm:
npm install -g firebase-tools
を実行します。
Linux
- 自動インストール スクリプト:
curl -sL https://firebase.tools | upgrade=true bash
を実行します。 - スタンドアロン バイナリ: 新しいバージョンをダウンロードして、システム上のバージョンを置き換えます。
- npm:
npm install -g firebase-tools
を実行します。
CI システムで CLI を使用する
Firebase CLI で認証を完了するにはブラウザが必要ですが、CLI は CI およびその他のヘッドレス環境と完全に互換性があります。
ブラウザがインストールされたマシンに、Firebase CLI をインストールします。
次のコマンドを実行して、ログイン プロセスを開始します。
firebase login:ci
指定された URL にアクセスし、Google アカウントを使用してログインします。
新しい更新トークンを出力します。現在の CLI セッションは影響を受けません。
安全かつアクセス可能な方法で、CI システムに出力トークンを保存します。
このトークンは、
firebase
コマンドを実行するときに使用します。次のいずれかのオプションを使用できます。オプション 1: トークンを環境変数
FIREBASE_TOKEN
として保存する。システムはこのトークンを自動的に使用します。オプション 2: CI システムで
--token TOKEN
フラグを指定してすべてのfirebase
コマンドを実行する。
トークンを読み込む際の優先順位は、フラグ、環境変数、必要な Firebase プロジェクトの順です。
Firebase プロジェクトを初期化する
CLI を使用して実行される多くの一般的なタスク(Firebase プロジェクトへのデプロイなど)には、プロジェクト ディレクトリが必要です。プロジェクト ディレクトリを設定するには、firebase init
コマンドを使用します。プロジェクト ディレクトリは通常、ソース管理のルートと同じディレクトリであり、firebase init
の実行後、ディレクトリには firebase.json
構成ファイルが格納されます。
新しい Firebase プロジェクトを初期化するには、アプリのディレクトリ内から次のコマンドを実行します。
firebase init
firebase init
コマンドを実行すると、プロジェクト ディレクトリといくつかの Firebase プロダクトを順番に設定できます。プロジェクトの初期化中に、Firebase CLI から次のタスクを完了するように求められます。
Firebase プロジェクトで設定する Firebase プロダクトを選択する。
選択したプロダクトで特定のファイルを構成するように求められます。構成の詳細については、プロダクト(Hosting など)のドキュメントをご覧ください。後でいつでも
firebase init
を実行して、別の Firebase サービスを設定することもできます。デフォルトの Firebase プロジェクトを選択する。
このステップにより、プロジェクト固有のコマンド(
firebase deploy
など)が適切な Firebase プロジェクトに対して実行されるように、現在のプロジェクト ディレクトリが Firebase プロジェクトに関連付けられます。また、同じプロジェクト ディレクトリに複数の Firebase プロジェクトを関連付けることもできます(ステージング プロジェクトと本番環境プロジェクトなど)。
初期化の最後に、Firebase は次の 2 つのファイルを自動的に作成し、ローカルアプリ ディレクトリのルートに追加します。
プロジェクトの構成を含む
firebase.json
構成ファイル。プロジェクト エイリアスが保存される
.firebaserc
ファイル。
firebase.json
ファイル
firebase init
コマンドによって、プロジェクト ディレクトリのルートに firebase.json
構成ファイルが作成されます。
firebase.json
ファイルは、Firebase CLI でアセットをデプロイするために必要です。このファイルにより、どのファイルと設定がプロジェクト ディレクトリから Firebase プロジェクトにデプロイされるかが指定されます。一部の設定はプロジェクト ディレクトリまたは Firebase コンソールで定義できるため、発生しうるデプロイの競合を解決してください。
ほとんどの Firebase Hosting オプションの構成は、firebase.json
ファイル内で直接行うことができます。ただし、その他の Firebase CLI でデプロイできる Firebase サービスについては、firebase init
コマンドによって特定のファイルが作成され、そのファイルでそれらのサービスの設定を定義できます(Cloud Functions 用の index.js
ファイルなど)。firebase.json
ファイルでデプロイ前フックまたはデプロイ後フックを設定することもできます。
初期化時に TypeScript のソースと lint オプションを選択した状態で Firebase Hosting、Cloud Firestore、Cloud Functions for Firebase を選択した場合、デフォルトの設定を含む firebase.json
ファイルの例は、次のようになります。
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
},
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"functions": {
"predeploy": [
"npm --prefix \"$RESOURCE_DIR\" run lint",
"npm --prefix \"$RESOURCE_DIR\" run build"
]
}
}
デフォルトでは firebase.json
が使用されますが、--config PATH
フラグを渡して代わりの構成ファイルを指定することができます。
複数の Cloud Firestore データベースを構成する
firebase init
を実行するとき、firebase.json
ファイルには、上記のように、プロジェクトのデフォルトのデータベースに対応する 1 つの firestore
キーが含まれます。
プロジェクトに複数の Cloud Firestore データベースが含まれている場合は、firebase.json
ファイルを編集して、各データベースにそれぞれ異なる Cloud Firestore Security Rules とデータベース インデックス ソースファイルを関連付けます。データベースごとに 1 つのエントリを含む JSON 配列を追加して、ファイルを変更します。
"firestore": [
{
"database": "(default)",
"rules": "firestore.default.rules",
"indexes": "firestore.default.indexes.json"
},
{
"database": "ecommerce",
"rules": "firestore.ecommerce.rules",
"indexes": "firestore.ecommerce.indexes.json"
}
],
デプロイ時に無視する Cloud Functions ファイル
関数のデプロイ時に、CLI では、functions
ディレクトリ内で無視するファイルのリストを自動的に指定します。これにより、デプロイのデータサイズが増える原因となる、バックエンドの無関係なファイルのデプロイを防げます。
デフォルトで無視されるファイルのリスト(JSON 形式)は次のとおりです。
"ignore": [
".git",
".runtimeconfig.json",
"firebase-debug.log",
"firebase-debug.*.log",
"node_modules"
]
ignore
に独自のカスタム値を firebase.json
に追加する場合、必ず上述のファイルのリストを保持(欠落している場合は追加)してください。
プロジェクト エイリアスを管理する
複数の Firebase プロジェクトを同じプロジェクト ディレクトリに関連付けることができます。たとえば、ステージング用と本番環境用に Firebase プロジェクトをそれぞれ 1 つ使用するとします。その場合、別のプロジェクト環境を使用することで、本番環境にデプロイする前に変更内容を確認できます。firebase use
コマンドを使用すると、エイリアス間の切り替えや新しいエイリアスの作成を行うことができます。
プロジェクト エイリアスを追加する
プロジェクトの初期化中に Firebase プロジェクトを選択すると、プロジェクトに default
というエイリアスが自動的に割り当てられます。ただし、プロジェクト固有のコマンドを別の Firebase プロジェクトに対して実行しつつ、同じプロジェクト ディレクトリを使用するには、プロジェクト ディレクトリから次のコマンドを実行します。
firebase use --add
このコマンドを実行すると、別の Firebase プロジェクトを選択し、そのプロジェクトをエイリアスとして割り当てるように求められます。エイリアスの割り当ては、プロジェクト ディレクトリ内にある .firebaserc
ファイルに書き込まれます。
プロジェクト エイリアスを使用する
割り当てられた Firebase プロジェクト エイリアスを使用するには、プロジェクト ディレクトリから次のいずれかのコマンドを実行します。
コマンド | 説明 |
---|---|
firebase use |
プロジェクト ディレクトリに現在定義されているエイリアスのリストを表示します。 |
firebase use \ |
指定した Firebase プロジェクトにすべてのコマンドを実行します。 CLI は、このプロジェクトを現在の「アクティブ プロジェクト」として使用します。 |
firebase use --clear |
アクティブ プロジェクトをクリアします。
他の CLI コマンドを実行する前に、 |
firebase use \ |
プロジェクト ディレクトリからエイリアスを削除します。 |
現在アクティブ プロジェクトを変更するには、CLI コマンドに --project
フラグを渡します。例: staging
エイリアスを割り当てた Firebase プロジェクトに実行するように CLI を設定できます。たとえば、prod
エイリアスを割り当てた Firebase プロジェクトに単一のコマンドを実行する場合は、
を実行します。
ソース管理とプロジェクト エイリアス
一般に、チームでプロジェクト エイリアスを共有するには、.firebaserc
ファイルをソース管理にチェックインします。ただし、オープンソース プロジェクトまたはスターター テンプレートについては、通常 .firebaserc
ファイルをチェックインするべきではありません。
自分専用の開発プロジェクトがある場合は、各コマンドとともに --project
フラグを渡すか、Firebase プロジェクトにエイリアスを割り当てずに firebase use PROJECT_ID
を実行できます。
Firebase プロジェクトをローカルで実行してテストする
本番環境にデプロイする前に、ローカルでホストされる URL で Firebase プロジェクトを表示してテストできます。選択した機能のみをテストする場合は、firebase serve
コマンドのフラグ内でカンマ区切りのリストを使用します。
次のいずれかのタスクを行う場合は、ローカル プロジェクト ディレクトリのルートから以下のコマンドを実行します。
- Firebase がホストするアプリの静的コンテンツを表示する。
- Cloud Functions を使用して Firebase Hosting の動的コンテンツを生成し、本番環境(デプロイ済み)の HTTP 関数を使用して、ローカル URL で Hosting をエミュレートする。
firebase serve --only hosting
ローカル HTTP 関数を使用してプロジェクトをエミュレートする
プロジェクト ディレクトリから次のいずれかのコマンドを実行し、ローカル HTTP 関数を使用してプロジェクトをエミュレートします。
テストのためにローカル URL で HTTP 関数およびホスティングをエミュレートするには、次のいずれかのコマンドを使用します。
firebase serve
firebase serve --only functions,hosting // uses a flag
HTTP 関数のみをエミュレートするには、次のコマンドを使用します。
firebase serve --only functions
他のローカル デバイスからテストする
デフォルトでは、firebase serve
は localhost
からのリクエストにのみ応答します。つまり、ホストされているコンテンツには同じパソコンのウェブブラウザからアクセスできますが、ネットワーク上の他のデバイスからはアクセスできません。他のローカル デバイスからテストする場合は、次のように --host
フラグを使用します。
firebase serve --host 0.0.0.0 // accepts requests to any host
Firebase プロジェクトにデプロイする
Firebase CLI では、次のようなコードとアセットの Firebase プロジェクトへのデプロイを管理できます。
- Firebase Hosting サイトの新規リリース
- 新規、更新済み、既存の Cloud Functions for Firebase
- Firebase Data Connect 新規または更新済みのスキーマとコネクタ
- Firebase Realtime Database のルール
- Cloud Storage for Firebase のルール
- Cloud Firestore のルール
- Cloud Firestore のインデックス
Firebase プロジェクトにデプロイするには、プロジェクト ディレクトリから次のコマンドを実行します。
firebase deploy
オプションで、各デプロイにコメントを追加できます。このコメントは、他のデプロイメント情報と一緒にプロジェクトの Firebase Hosting ページに表示されます。 次に例を示します。
firebase deploy -m "Deploying the best new feature ever."
firebase deploy
コマンドを使用する場合は、次の点に注意してください。
プロジェクト ディレクトリからリソースをデプロイするには、
firebase.json
ファイルが必要です。このファイルはfirebase init
コマンドによって自動的に作成されます。デフォルトでは、
firebase deploy
によって、プロジェクト ディレクトリ内にあるデプロイ可能なすべてのリソースについて、リリースが作成されます。特定の Firebase サービスまたは機能をデプロイするには、部分デプロイを使用します。
セキュリティ ルールのデプロイの競合
Firebase Realtime Database、Cloud Storage for Firebase、Cloud Firestore の場合、ローカル プロジェクト ディレクトリまたは Firebase コンソールのいずれからでもセキュリティ ルールを定義できます。
デプロイの競合を回避するもう一つのオプションは、部分デプロイを使用し、Firebase コンソールでのみルールを定義することです。
デプロイの割り当て
可能性は低いものの、Firebase のデプロイ オペレーションのレートやボリュームを制限する割り当てを超えることがあります。たとえば、非常に多数の関数をデプロイすると、HTTP 429 Quota
エラー メッセージが表示されることがあります。このような問題を解決するには、部分デプロイを使用します。
デプロイをロールバックする
プロジェクトの Firebase Hosting ページから、目的のリリースの [ロールバック] アクションを選択すると、Firebase Hosting のデプロイをロールバックできます。
現時点では、Firebase Realtime Database、Cloud Storage for Firebase、Cloud Firestore のセキュリティ ルールのリリースをロールバックすることはできません。
特定の Firebase サービスをデプロイする
特定の Firebase サービスまたは機能のみをデプロイする場合は、firebase deploy
コマンドのフラグ内でカンマ区切りリストを使用します。たとえば、次のコマンドは Firebase Hosting コンテンツと Cloud Storage セキュリティ ルールをデプロイします。
firebase deploy --only hosting,storage
次の表に、部分デプロイで利用できるサービスと機能を示します。フラグ内の名前は、firebase.json
構成ファイル内のキーに対応しています。
フラグの構文 | デプロイされるサービスまたは機能 |
---|---|
--only hosting |
Firebase Hosting のコンテンツ |
--only database |
Firebase Realtime Database 個のルール |
--only dataconnect |
Firebase Data Connect のスキーマとコネクタ |
--only storage |
Cloud Storage for Firebase 個のルール |
--only firestore |
構成されたすべてのデータベースに対する Cloud Firestore ルールとインデックス |
--only functions |
Cloud Functions for Firebase(このフラグはより詳細な指定も可能です) |
特定の関数をデプロイする
関数をデプロイするときは、特定の関数をターゲットにできます。次に例を示します。
firebase deploy --only functions:function1
firebase deploy --only functions:function1,functions:function2
もう一つのオプションは、/functions/index.js
ファイルで関数をエクスポート グループにグループ化することです。関数をグループ化すると、1 つのコマンドで複数の関数をデプロイできます。
たとえば、次の関数を記述して groupA
と groupB
を定義できます。
var functions = require('firebase-functions/v1');
exports.groupA = {
function1: functions.https.onRequest(...),
function2: functions.database.ref('\path').onWrite(...)
}
exports.groupB = require('./groupB');
この例では、別の functions/groupB.js
ファイルに、groupB
の関数を個別に定義する追加関数が含まれています。次に例を示します。
var functions = require('firebase-functions/v1');
exports.function3 = functions.storage.object().onChange(...);
exports.function4 = functions.analytics.event('in_app_purchase').onLog(...);
この例では、プロジェクト ディレクトリから次のコマンドを実行することによって、groupA
のすべての関数をデプロイできます。
firebase deploy --only functions:groupA
または、グループ内の特定の関数をターゲットにするには、次のコマンドを実行します。
firebase deploy --only functions:groupA.function1,groupB.function4
関数を削除する
Firebase CLI では、以前にデプロイした関数を削除するための次のコマンドとオプションがサポートされています。
すべてのリージョンで、指定した名前と一致するすべての関数を削除します。
firebase functions:delete FUNCTION-1_NAME
デフォルト以外のリージョンで実行されている指定した関数を削除します。
firebase functions:delete FUNCTION-1_NAME --region REGION_NAME
複数の関数を削除します。
firebase functions:delete FUNCTION-1_NAME FUNCTION-2_NAME
指定した関数グループを削除します。
firebase functions:delete GROUP_NAME
確認メッセージを省略します。
firebase functions:delete FUNCTION-1_NAME --force
デプロイ前とデプロイ後にスクリプトで実行されるタスクを設定する
シェル スクリプトを firebase deploy
コマンドに接続して、デプロイ前のタスクまたはデプロイ後のタスクを実施できます。たとえば、デプロイ前スクリプトで TypeScript コードを JavaScript にトランスパイルできます。また、デプロイ後フックで管理者に Firebase Firebase Hosting への新しいサイト コンテンツのデプロイを通知することも可能です。
デプロイ前フックまたはデプロイ後フックを設定するには、firebase.json
構成ファイルに bash スクリプトを追加します。firebase.json
ファイルで簡単なスクリプトを直接定義するか、プロジェクト ディレクトリ内にある他のファイルを参照できます。
たとえば、次のスクリプトは、Firebase Hosting へのデプロイが成功した場合に Slack メッセージを送信するデプロイ後のタスクの firebase.json
式です。
"hosting": {
// ...
"postdeploy": "./messageSlack.sh 'Just deployed to Firebase Hosting'",
"public": "public"
}
messageSlack.sh
スクリプト ファイルはプロジェクト ディレクトリにあり、次のようになります。
curl -X POST -H 'Content-type: application/json' --data '{"text":"$1"}' \https://SLACK_WEBHOOK_URL
デプロイできるいずれかのアセットに対して、predeploy
フックと postdeploy
フックを設定できます。firebase deploy
を実行すると、firebase.json
ファイルで定義されているすべてのデプロイ前のタスクとデプロイ後のタスクがトリガーされることに注意してください。特定の Firebase サービスに関連付けられているタスクのみを実施するには、部分デプロイ コマンドを使用します。
predeploy
フックと postdeploy
フックは、いずれもスクリプトの標準出力とエラー ストリームをターミナルに出力します。障害が発生した場合は、次の点に注意してください。
- デプロイ前フックが予期したとおりに完了しなかった場合、デプロイはキャンセルされます。
- なんらかの理由でデプロイが失敗すると、デプロイ後フックはトリガーされません。
環境変数
デプロイ前フックとデプロイ後フックで実行されているスクリプト内では、次の環境変数を使用できます。
$GCLOUD_PROJECT
: アクティブ プロジェクトの ID$PROJECT_DIR
:firebase.json
ファイルを含むルート ディレクトリ$RESOURCE_DIR
: (hosting
とfunctions
のスクリプトのみ)デプロイする Hosting または Cloud Functions リソースが格納されているディレクトリの場所
複数の Realtime Database インスタンスを管理する
Firebase プロジェクトには、複数の Firebase Realtime Database インスタンスを含めることができます。既定では、CLI コマンドはデフォルトのデータベース インスタンスを操作します。
ただし、--instance DATABASE_NAME
--instance
フラグは次のコマンドでサポートされています。
firebase database:get
firebase database:profile
firebase database:push
firebase database:remove
firebase database:set
firebase database:update
コマンド リファレンス
CLI 管理コマンド
コマンド | 説明 |
---|---|
help | CLI または特定のコマンドに関するヘルプ情報を表示します。 |
init | 現在のディレクトリに新しい Firebase プロジェクトを関連付けて設定します。このコマンドを実行すると、firebase.json 構成ファイルが現在のディレクトリに作成されます。 |
login | Firebase アカウントを使用して CLI の認証を行います。ウェブブラウザにアクセスできる必要があります。localhost にアクセスできないリモート環境で CLI にログインするには、--no-localhost |
login:ci | 非対話形式の環境で使用する認証トークンを生成します。 |
logout | Firebase アカウントを CLI からログアウトします。 |
open | 関連するプロジェクト リソースをブラウザで開きます。 |
projects:list | アクセス権のある Firebase プロジェクトの一覧を表示します。 |
use | CLI にアクティブな Firebase プロジェクトを設定します。 プロジェクトのエイリアスを管理します。 |
プロジェクト管理コマンド
コマンド | 説明 | |
---|---|---|
Firebase プロジェクトの管理 | ||
projects:addfirebase | Firebase リソースを既存の Google Cloud プロジェクトに追加します。 | |
projects:create | 新しい Google Cloud プロジェクトを作成し、新しいプロジェクトに Firebase リソースを追加します。 | |
projects:list | アクセス権のある Firebase プロジェクトの一覧を表示します。 | |
Firebase アプリの管理(iOS、Android、ウェブ) | ||
apps:create | アクティブ プロジェクトに新しい Firebase アプリを作成します。 | |
apps:list | アクティブ プロジェクトに登録済みの Firebase アプリを一覧表示します。 | |
apps:sdkconfig | Firebase アプリの Google サービスの構成を出力します。 | |
setup:web | 非推奨。代わりに apps:sdkconfig を使用し、プラットフォーム引数として web を指定してください。Firebase ウェブアプリの Google サービスの構成を出力します。 |
|
SHA 証明書ハッシュの管理(Android のみ) | ||
apps:android:sha:create \ FIREBASE_APP_ID SHA_HASH |
指定した SHA 証明書ハッシュを指定した Firebase Android アプリに追加します。 | |
apps:android:sha:delete \ FIREBASE_APP_ID SHA_HASH |
指定した Firebase Android アプリから指定した SHA 証明書ハッシュを削除します。 | |
apps:android:sha:list \ FIREBASE_APP_ID |
指定した Firebase Android アプリの SHA 証明書ハッシュを一覧表示します。 |
デプロイとローカルでの開発
次のコマンドを使用すると、Firebase Hosting サイトのデプロイ、およびこのサイトとの通信を行うことができます。
コマンド | 説明 |
---|---|
deploy | プロジェクト ディレクトリからアクティブ プロジェクトにコードとアセットをデプロイします。Firebase Hosting の場合、firebase.json 構成ファイルが必要です。 |
serve | Firebase Hosting 構成を使用してローカル ウェブサーバーを起動します。Firebase Hosting の場合、firebase.json 構成ファイルが必要です。 |
App Distribution コマンド
コマンド | 説明 |
---|---|
appdistribution:distribute \ --app FIREBASE_APP_ID |
テスターがビルドを利用できるようにします。 |
appdistribution:testers:add | プロジェクトにテスターを追加します。 |
appdistribution:testers:remove | プロジェクトからテスターを削除します。 |
App Hosting コマンド
コマンド | 説明 |
---|---|
apphosting:backends:create \ --project PROJECT_ID \ --location REGION --app APP_ID |
App Hosting バックエンドを構成する単一のコードベースにリンクされたマネージド リソースのコレクションを作成します。必要に応じて、Firebase アプリ ID で既存の Firebase ウェブアプリを指定します。 |
apphosting:backends:get \ BACKEND_ID \ --project PROJECT_ID \ --location REGION |
バックエンドの公開 URL などの特定の詳細情報を取得します。 |
apphosting:backends:list \ --project PROJECT_ID |
プロジェクトに関連付けられているすべてのアクティブ バックエンドのリストを取得します。 |
firebase apphosting:backends:delete \ BACKEND_ID \ --project PROJECT_ID \ --location REGION |
プロジェクトからバックエンドを削除します。 |
firebase apphosting:config:export \ --project PROJECT_ID \ --secrets ENVIRONMENT_NAME |
アプリのエミュレーションで使用するために Secret をエクスポートします。 デフォルトは apphosting.yaml に保存されている Secret です。または、--secrets を使用して、対応する apphosting.ENVIRONMENT_NAME.yaml ファイルがある環境を指定します。
|
firebase apphosting:rollouts:create \ BACKEND_ID \ --git_branch BRANCH_NAME \ --git_commit COMMIT_ID |
手動でトリガーされるロールアウトを作成します。 必要に応じて、ブランチまたは特定の commit に対する最新の commit を指定します。オプションが指定されていない場合は、ブランチのリストから選択するようプロンプトが表示されます。 |
apphosting:secrets:set
KEY
--project PROJECT_ID \ --location REGION \ --data-file DATA_FILE_PATH |
Secret Manager にシークレット マテリアルを保存します。 必要に応じて、Secret データの読み取り元となるファイルパスを指定します。標準入力から Secret データを読み取るには、 _ に設定します。 |
apphosting:secrets:grantaccess
KEY
BACKEND_ID \ --project PROJECT_ID \ --location REGION |
提供されたシークレットへのアクセス権をバックエンド サービス アカウントに付与し、ビルド時または実行時に App Hosting からシークレットにアクセスできるようにします。 |
apphosting:secrets:describe
KEY \ --project PROJECT_ID |
シークレットとそのバージョンのメタデータを取得します。 |
firebase apphosting:secrets:access \ KEY[@version] \ --project PROJECT_ID |
シークレットとそのバージョンを指定してシークレット値にアクセスします。デフォルトでは、最新バージョンにアクセスします。 |
Authentication(ユーザー管理)コマンド
コマンド | 説明 |
---|---|
auth:export | アクティブ プロジェクトのユーザー アカウントを JSON または CSV ファイルにエクスポートします。詳細については、auth:import and auth:export のページをご覧ください。 |
auth:import | JSON または CSV ファイルからアクティブなプロジェクトにユーザー アカウントをインポートします。詳細については、auth:import and auth:export のページをご覧ください。 |
Cloud Firestore コマンド
コマンド | 説明 |
---|---|
firestore:locations |
Cloud Firestore データベースで使用可能なロケーションを一覧表示します。 |
firestore:databases:create DATABASE_ID |
ネイティブ モードで、Firebase プロジェクト内にデータベース インスタンスを作成します。 このコマンドは、次のフラグを受け取ります。
|
firestore:databases:list |
Firebase プロジェクトのデータベースを一覧表示します。 |
firestore:databases:get DATABASE_ID |
Firebase プロジェクトで指定したデータベースのデータベース構成を取得します。 |
firestore:databases:update DATABASE_ID |
Firebase プロジェクトで指定したデータベースのデータベース構成を更新します。 フラグを 1 つ以上指定する必要があります。このコマンドは、次のフラグを受け取ります。
|
firestore:databases:delete DATABASE_ID |
Firebase プロジェクトのデータベースを削除します。 |
firestore:indexes |
Firebase プロジェクト内のデータベースのインデックスを一覧表示します。 このコマンドは、次のフラグを受け取ります。
|
firestore:delete |
アクティブ プロジェクトのデータベース内のドキュメントを削除します。CLI を使用すると、コレクション内のすべてのドキュメントを再帰的に削除できます。 CLI を使用して Cloud Firestore データを削除すると、読み取りと削除の費用が発生します。詳細については、Cloud Firestore の課金についてをご覧ください。 このコマンドは、次のフラグを受け取ります。
|
Cloud Functions for Firebase コマンド
コマンド | 説明 |
---|---|
functions:config:clone | 別のプロジェクトの環境のクローンをアクティブな Firebase プロジェクトに作成します。 |
functions:config:get | アクティブ プロジェクトの Cloud Functions の既存の構成値を取得します。 |
functions:config:set | アクティブ プロジェクトの Cloud Functions のランタイム構成値を保存します。 |
functions:config:unset | アクティブ プロジェクトのランタイム構成から値を削除します。 |
functions:log | デプロイされた Cloud Functions からログを読み取ります。 |
詳細については、環境構成のドキュメントをご覧ください。
Crashlytics コマンド
コマンド | 説明 |
---|---|
crashlytics:mappingfile:generateid \ --resource-file=PATH/TO/ANDROID_RESOURCE.XML |
指定した Android リソース(XML)ファイルに一意のマッピング ファイル ID を生成します。 |
crashlytics:mappingfile:upload \ --app=FIREBASE_APP_ID \ --resource-file=PATH/TO/ANDROID_RESOURCE.XML \ PATH/TO/MAPPING_FILE.TXT |
このアプリの Proguard 対応マッピング(TXT)ファイルをアップロードし、指定した Android リソース(XML)ファイルで宣言されたマッピング ファイル ID に関連付けます。 |
crashlytics:symbols:upload \ --app=FIREBASE_APP_ID \ PATH/TO/SYMBOLS |
Android でネイティブ ライブラリによるクラッシュが発生すると、Crashlytics と互換性のあるシンボル ファイルを生成し、Firebase サーバーにアップロードします。 |
Data Connect コマンド
これらのコマンドとそのユースケースについて詳しくは、Data Connect CLI リファレンス ガイドをご覧ください。
コマンド | 説明 |
---|---|
dataconnect:services:list | Firebase プロジェクトにデプロイされているすべての Data Connect サービスを一覧表示します。 |
dataconnect:sql:diff \ SERVICE_ID |
指定したサービスについて、ローカルの Data Connect スキーマと Cloud SQL データベース スキーマの違いが表示されます。 |
dataconnect:sql:migrate \ --force \ SERVICE_ID |
Cloud SQL データベースのスキーマを移行して、ローカルの Data Connect スキーマと一致させます。 |
dataconnect:sql:grant\ --role=ROLE \ --email=EMAIL \ SERVICE_ID |
指定されたユーザーまたはサービス アカウントのメールアドレスに SQL ロールを付与します。--role フラグの場合、付与する SQL ロールは owner 、writer 、reader のいずれかです。--email フラグには、ロールを付与するユーザーまたはサービス アカウントのメールアドレスを指定します。 |
dataconnect:sdk:generate | Data Connect コネクタ用の型指定された SDK を生成します。 |
Extensions コマンド
コマンド | 説明 |
---|---|
ext | Firebase Extensions コマンドの使用方法を表示します。 アクティブなプロジェクトにインストールされている拡張機能インスタンスの一覧を表示します。 |
ext:configure \ EXTENSION_INSTANCE_ID |
拡張機能のマニフェスト内にある拡張機能インスタンスのパラメータ値を再構成します。 |
ext:info \ PUBLISHER_ID/EXTENSION_ID |
拡張機能の詳細情報を出力します。 |
ext:install \ PUBLISHER_ID/EXTENSION_ID |
拡張機能の新しいインスタンスを拡張機能のマニフェストに追加します。 |
ext:list | Firebase プロジェクトにインストールされている、すべての拡張機能インスタンスの一覧を表示します。 各拡張機能のインスタンス ID を出力します。 |
ext:uninstall \ EXTENSION_INSTANCE_ID |
拡張機能のマニフェストから拡張機能インスタンスを削除します。 |
ext:update \ EXTENSION_INSTANCE_ID |
拡張機能のマニフェスト内の拡張機能インスタンスを最新バージョンに更新します。 |
ext:export | インストールされているすべての拡張機能インスタンスをプロジェクトから拡張機能のマニフェストにエクスポートします。 |
Extensions パブリッシャー コマンド
コマンド | 説明 |
---|---|
ext:dev:init | 現在のディレクトリ内で、新しい拡張機能のスケルトン コードベースを初期化します。 |
ext:dev:list \ PUBLISHER_ID |
パブリッシャーがアップロードしたすべての拡張機能のリストを出力します。 |
ext:dev:register | Firebase プロジェクトを拡張機能パブリッシャー プロジェクトとして登録します。 |
ext:dev:deprecate \ PUBLISHER_ID/EXTENSION_ID \ VERSION_PREDICATE |
バージョンの記述子に一致する拡張機能バージョンを非推奨にします。 バージョンの記述子には、単一のバージョン( 1.0.0 など)、またはバージョン範囲(>1.0.0 など)を指定します。バージョンの記述子を指定しない場合は、該当する拡張機能のすべてのバージョンを非推奨にします。 |
ext:dev:undeprecate \ PUBLISHER_ID/EXTENSION_ID \ VERSION_PREDICATE |
バージョンの記述子に一致する拡張機能のバージョンの非推奨を解除します。 バージョンの記述子には、単一のバージョン( 1.0.0 など)、またはバージョン範囲(>1.0.0 など)を指定します。バージョンの記述子を指定しない場合は、該当する拡張機能のすべてのバージョンの非推奨を解除します。 |
ext:dev:upload \ PUBLISHER_ID/EXTENSION_ID |
拡張機能の新しいバージョンをアップロードします。 |
ext:dev:usage \ PUBLISHER_ID |
パブリッシャーがアップロードした拡張機能のインストール数と使用状況の指標を表示します。 |
Hosting コマンド
コマンド | 説明 |
---|---|
hosting:disable |
アクティブな Firebase プロジェクトの Firebase Hosting トラフィックの処理を停止します。 このコマンドを実行した後、プロジェクトの Hosting URL に「サイトが見つかりません」というメッセージが表示されます。 |
Hosting サイトの管理 | |
firebase hosting:sites:create \ SITE_ID |
指定された (省略可)次のフラグを渡して、新しいサイトに関連付ける既存の Firebase ウェブアプリを指定します。
|
firebase hosting:sites:delete \ SITE_ID |
指定された Hosting サイトを削除します サイトが削除される前に、CLI に確認プロンプトが表示されます。 (省略可)次のフラグを渡して確認プロンプトをスキップします。 |
firebase hosting:sites:get \ SITE_ID |
指定した Hosting サイトに関する情報を取得します |
firebase hosting:sites:list |
アクティブな Firebase プロジェクトのすべての Hosting サイトのリストを取得します |
プレビュー チャネルの管理 | |
firebase hosting:channel:create \ CHANNEL_ID |
指定された このコマンドではチャネルにデプロイされません。 |
firebase hosting:channel:delete \ CHANNEL_ID |
指定したプレビュー チャネルを削除します。 サイトのライブチャネルは削除できません。 |
firebase hosting:channel:deploy \ CHANNEL_ID |
Hosting のコンテンツと構成を指定したプレビュー チャネルにデプロイします。 プレビュー チャネルがまだない場合は、このコマンドによってチャネルへのデプロイ前にデフォルトの Hosting サイトにチャネルが作成されます。 |
firebase hosting:channel:list | デフォルトの Hosting サイトにあるすべてのチャネル(ライブチャネルを含む)を一覧表示します。 |
firebase hosting:channel:open \ CHANNEL_ID |
ブラウザを開き、指定したチャネルの URL を表示します。ブラウザで開くことができない場合は URL を返します。 |
バージョンのクローン | |
firebase hosting:clone \ SOURCE_SITE_ID:SOURCE_CHANNEL_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
指定した「ソース」チャネルに一番新しくデプロイされたバージョンのクローンを、指定した「ターゲット」チャネルに作成します。 このコマンドでは、指定した「ターゲット」チャネルにもデプロイされます。「ターゲット」チャネルがまだない場合、このコマンドは、チャネルへのデプロイの前に「ターゲット」とする Hosting サイトに新しいプレビュー チャネルを作成します。 |
firebase hosting:clone \ SOURCE_SITE_ID:@VERSION_ID \ TARGET_SITE_ID:TARGET_CHANNEL_ID |
指定したバージョンのクローンを、指定した「ターゲット」チャネルに作成します。 このコマンドでは、指定した「ターゲット」チャネルにもデプロイされます。「ターゲット」チャネルがまだない場合、このコマンドは、チャネルへのデプロイの前に「ターゲット」とする Hosting サイトに新しいプレビュー チャネルを作成します。
|
Realtime Database コマンド
最初のデフォルトの Realtime Database インスタンスを作成できます。これには、Firebase コンソール内で作業するか、一般的な firebase init
ワークフローまたは特定の firebase init database
フローを使用します。
インスタンスを作成した後は、複数の Realtime Database インスタンスを管理するの説明に沿ってインスタンスを管理できます。
コマンド | 説明 |
---|---|
database:get | アクティブ プロジェクトのデータベースからデータを取得し、JSON として表示します。インデックス付きデータのクエリがサポートされます。 |
database:instances:create | 指定したインスタンス名でデータベース インスタンスを作成します。--location オプションを指定して、指定したリージョンにデータベースを作成できます。このオプションで使用するリージョン名については、プロジェクトのロケーションを選択するをご覧ください。
現在のプロジェクトにデータベース インスタンスが存在しない場合は、firebase init フローを実行してインスタンスを作成するよう求められます。
|
database:instances:list | このプロジェクトのすべてのデータベース インスタンスのリストを取得します。--location オプションを指定して、指定したリージョンのデータベースのリストを取得できます。このオプションで使用するリージョン名については、プロジェクトのロケーションを選択するをご覧ください。 |
database:profile | アクティブ プロジェクトのデータベースにオペレーションのプロファイルを作成します。詳細については、Realtime Database オペレーション タイプをご覧ください。 |
database:push | アクティブ プロジェクトのデータベースの指定場所にあるリストに新しいデータを追加します。ファイル、STDIN またはコマンドライン引数から入力を取得します。 |
database:remove | アクティブ プロジェクトのデータベースの指定場所にあるデータをすべて削除します。 |
database:set | アクティブ プロジェクトのデータベース内の指定場所にあるデータをすべて置き換えます。ファイル、STDIN またはコマンドライン引数から入力を取得します。 |
database:update | アクティブ プロジェクトのデータベース内の指定場所で部分更新を実行します。ファイル、STDIN またはコマンドライン引数から入力を取得します。 |
Remote Config コマンド
コマンド | 説明 |
---|---|
remoteconfig:versions:list \ --limit NUMBER_OF_VERSIONS |
テンプレートの最新 10 件のバージョンのリストを取得します。0 を指定すると、既存のすべてのバージョンが返されます。--limit オプションを指定すると、返されるバージョンの数を制限できます。 |
remoteconfig:get \ --v, version_number VERSION_NUMBER --o, output FILENAME |
バージョンを指定してテンプレートを取得し(デフォルトは最新バージョン)、パラメータ グループ、パラメータ、条件名、バージョンをテーブルに出力します。オプションで、-o, FILENAME で指定したファイルに出力を書き込むことができます。 |
remoteconfig:rollback \ --v, version_number VERSION_NUMBER --force |
指定した以前のバージョン番号に Remote Config テンプレートをロールバックします。バージョン番号を指定しない場合は、デフォルトで直前のバージョン(現在のバージョンの 1 つ前)にロールバックされます。--force を指定しない場合、ロールバックを実行する前に、確認を求めるプロンプトが表示されます。 |