Firebaseを使って開発を始めると、必ずと言っていいほど直面するのが「Firebase CLI」の導入です。Webサイトの公開や高度な設定管理には、このCLIツールが欠かせません。
しかし、いざ導入して firebase init を実行すると、聞き慣れない専門用語や選択肢が並び、どれを選べばいいか迷ってしまうものです。
また、生成される .firebaserc や firebase.json といったファイルは、プロジェクトの命綱とも言える重要な役割を持っています。
本記事では、初心者の方に向けてFirebase CLIの基礎から、初期設定時のベストな選択肢、そして主要ファイルの役割まで、実例を交えて解説しています。
Firebase CLIとは何か?
Firebase CLIは、自分のPCのターミナルやコマンドプロンプトから、Firebaseを直接操作するためのツールです。
CLIは「Command Line Interface」の略で、コマンドで命令する操作画面のことです。
なお、一般的なマウスでボタンをクリックして操作する方法をGUIと言います。
Firebase CLIでできること
Firebaseにはブラウザ上で操作できる「Firebaseコンソール」がありますが、CLIを使わないとできないことや、CLIの方が圧倒的に効率的な作業がたくさんあります。
プロジェクトの初期化(firebase init)
firebase initアプリに必要な設定ファイルを一瞬で自動作成します。
デプロイ(firebase deploy)
firebase deploy自分のパソコンで作ったWebサイトやプログラムを、コマンド1つで世界中に公開します。
ローカルでのテスト(firebase emulators:start)
firebase emulators:startネットに繋がずに、自分のパソコン内だけでFirebaseの機能(データベースやログインなど)が正しく動くか試せます。
セキュリティルールの管理(firebase deploy –only firestore:rules)
データの守り方(誰が読み書きできるか)をファイルとして保存し、管理できます。
Firestoreのセキュリティルールをデプロイする場合は以下のコードを実行します。
firebase deploy --only firestore:rulesFirebaseの運用で非常に重要となるセキュリティルールの詳細ついては下記をご参考ください。
なぜFirebase CLIを使うのか?
開発スピードが上がる
firebase deploy と打つだけで、数秒でサイトが更新されます。
このため、ブラウザを開いて、ファイルをアップロードして、ボタンを押して……という手間がなくなります。
設定を「ファイル」として残せる
ブラウザ上の操作だと「どこをどう設定したか」を忘れがちですが、CLIを使うと設定がコード(ファイル)として残ります。
これにより、チーム開発で設定を共有したり、過去の状態に戻したりするのが簡単になります。
自動化ができる
一般的なアプリは、プログラムを書き換えたら自動的にFirebaseに反映されるような仕組みを作ります。
この「自動化」にCLIは欠かせません。
Firebase CLIのインストールとログイン方法
【手順1】Node.jsとnpmのインストール
Firebase CLIを使うためにはNode.jsとnpmがインストールされている必要があります。
Node.jsとnpmの具体的なインストール方法は下記をご参考ください。
なお、自分のPCにインストール済みか確認するには以下のコマンドを実行し、バージョンが表示されるか確認します。バージョンが表示されればインストール済みです。
node -v
npm -v【手順2】Firebase CLIのインストール
以下のコマンドを実行しFirebase CLIをインストールします。
-gオプションをつけてグローバルにインストールします。
npm install -g firebase-toolsFirebase CLIは、基本的にグローバルでインストールします。
グローバルでインストールする場合は1度のインストールで、他のプロジェクトでもFirebase CLIが使えます。
プロジェクト毎にインストールしたい場合
プロジェクト毎にインストールしたい場合は「-g」オプションなしで実行します。
npm install firebase-tools既にインストール済みか確認したい場合
既にインストール済みか確認するには、以下のコマンドを実行し、バージョンが表示されるか確認します。
firebase -v【手順3】Firebaseにログインする
Firebase CLIをインストールしただけでは、Firebase CLIとFirebaseは繋がっていません。
以下のコマンドを実行し、ログインする必要があります。
firebase loginGeminiを使うか?やデータを共有してもいいか?と聞かれるのでお好みで設定します。

ウィンドウが起動し、Googleアカウントへのログイン画面になります。Firebaseを使用しているアカウントでログインします。画面以下のように表示されればログイン完了です。

firebase loginで一度ログインが完了すればログアウトしない限りずっとつながっています。
個人のPCであればログインしっぱなしで問題ありませんが、公共のPCや他人のPCでログインした場合は必ずログアウトする必要があります。
firebase logout以上でFirebase CLIが使える状態になりました。
プロジェクト一覧の表示(firebase projects:list)
参考として以下のコマンドを実行すると、現在Firebaseに作成しているプロジェクトの一覧を取得することができます。
firebase projects:list
firebase init(プロジェクトと各サービスの紐づけ)
firebase initを実行する場合
firebase initは全てのプロジェクトで実行しなければいけないわけではありません。
例えば、FirestoreやAuthentication、Admin SDKなどを使て、フロントエンドを操作するだけであれば、firebase init は必要ありません。
firebase initがなくてもFirebaseからデータの取得などのやり取りができます。
firebase initが必要になるのは以下の場合です。
- Webサイトを公開する(デプロイする)
https://your-project.web.appのようなURLで世界中に公開(Hosting)したい時。 - セキュリティルールをコードで管理したい
コンソール経由ではなく、手元でファイルを作成しセキュリティルールを設定する場合。
既にプロジェクトを作成済みでも実行できる
firebase initをせずに開発を進めている場合でも、後からfirebase initを実行することができます。
firebase initはFirebaseと接続したり、接続に必要なファイルを自動生成する機能なので、既存のプロジェクトファイルを上書きするといったことはありません。
後から追加したいサービスが増えた場合に、再度「firebase init」を実行してそのサービスを選択すれば、指定したサービスを追加することができます。
既存のサービスを初期化することはないので安心してください(※既存ファイルを上書きするか聞かれた場合はNoを選択してください。)
【実例】firebase initの手順
プロジェクトのルートディレクトリでfirebase initを実行すると、そのフォルダを Firebase プロジェクトとして使うための初期設定を行います。
firebase init
進めていいかと聞かれるのでYを選択します。
Are you ready to proceed? Yes使いたいサービスを選びます。spaceで選択します。
Which Firebase features do you want to set up for this directory? Press Space to select features, then Enter to
confirm your choices.
◯ Firestore: Configure security rules and indexes files for Firestore
◯ Genkit: Setup a new Genkit project with Firebase
◯ Functions: Configure a Cloud Functions directory and its files
◯ App Hosting: Set up deployments for full-stack web apps (supports server-side rendering)
◯ Hosting: Set up deployments for static web apps
◯ Storage: Configure a security rules file for Cloud Storage
◯ Emulators: Set up local emulators for Firebase products
◯ Extensions: Set up an empty Extensions manifest
◯ Realtime Database: Configure a security rules file for Realtime Database and (optionally) provision default
instance
◯ AI Logic: Set up Firebase AI Logic with app provisioning
◯ Data Connect: Set up a Firebase Data Connect service| 機能名 | 概要 | できること |
| Firestore | 進化版データベース | データの保存・管理 |
| Genkit | AI開発用ツール | 生成AI(ChatGPTのような機能)をアプリに組み込む |
| Functions | サーバー専用プログラム | ログイン時にメールを送るなど、裏側で自動処理をする |
| App Hosting | 次世代のWeb公開 | Next.js など、サーバーで動く最新のWebアプリを公開する |
| Hosting | 定番のWeb公開 | HTML/CSS/JSなどの静的サイトをサクッと公開する |
| Storage | ファイル置き場 | ユーザーが投稿した画像や動画を保存する |
| Emulators | PC上の仮想Firebase | 【超おすすめ】 ネットに繋がず自分のPC内でテストする |
| Extensions | 拡張機能パッケージ | 画像のリサイズなど、便利な既製品プログラムを使う |
| Realtime Database | 元祖データベース | チャットなど、超リアルタイムな更新をする |
| AI Logic | AI連携の簡略化 | 複雑なAIのロジックをFirebase上で管理する |
| Data Connect | SQLデータベース | Firestoreではなく、PostgreSQLのような型に強いDBを使う |
ここで選択しなくても後から再度「firebase init」で追加しなおすことができます。(★既存のサービスを再度選んでも元のデータを消去することはありません)
firebase initで選択したサービスがすぐに使えるようになるわけではありません。一部のサービスはFirebaseコンソール上で追加の設定が必要な場合もあります。
追加の設定が必要な場合はエラーが出るので、その内容に従って対応すれば問題ありません。
| サービス | コンソールでの操作 | 理由 |
| Hosting | 不要 | init して deploy すれば、自動的にサービスが開始されます。 |
| Firestore | 必要 | 最初に「本番モード」か「テストモード」か、保存場所(リージョン)をどこにするかを選ぶ必要があるため。 |
| Storage | 必要 | Firestoreと同様、最初に保存場所を決める必要があるため。 |
| Functions | 必要(プラン変更) | 有料プラン(Blazeプラン)への切り替えが必要になるため。 |
プロジェクトの形態を選びます(新規なのか既存なのかなど)
? Please select an option:
❯ Use an existing project
Create a new project
Add Firebase to an existing Google Cloud Platform project
Don't set up a default projectセキュリティルールを記述するファイルを選択します。(firestoreを選択した場合)
What file should be used for Firestore Rules? (firestore.rules)インデックスファイルのファイル名を指定します。(firestoreを選択した場合)
What file should be used for Firestore indexes? (firestore.indexes.json)firestore.indexes.jsonファイルは、Firestoreで複雑な検索を高速に行うための設定ファイルです。
「Firebase initialization complete!」と表示されればインストールは完了です。
firebase initで生成されるファイル
導入するサービスで何を選択したかにもよりますが、以下のファイルが追加されます。
.firebaserc
firebase.json
firestore.indexes.json (firestore用)
firestore.rules (firestore用).firebasercとは何か?
.firebaserc は、現在のフォルダと、Firebase上のどのプロジェクトを紐づけるかを示したファイルです。
プロジェクトIDなど、どこにデプロイするのかといった情報が記述してあります。
{
"projects": {
"default": "my-project-id"
}
}
本番環境(production)とテスト環境(staging)でデプロイ先を分ける場合、以下のように記述します。
{
"projects": {
"default": "my-project-id",
"prod": "prod-project-id"
}
}firebase use prodを実行することで、デプロイ先をテスト用から本番用へ切り替えることができます。
firebase.jsonとは何か?
firebase.json は、Firebase CLIの設定ファイルです。
Firebaseの各サービスをどのように動かすかを細かく指定する役割を担います。
- Hosting: どのフォルダ(
publicやdistなど)を公開するか、リダイレクト設定はどうするか。
- Firestore: セキュリティルールやインデックスの設定はどのファイルを参照するか。
- Functions: どのディレクトリにソースコードがあるか、実行環境(Node.jsのバージョンなど)はどうするか。
- Emulators: パソコン内のどのポート番号(8080など)を使って仮想サーバーを立ち上げるか。
例えば、HostingとFirestoreを使っている場合、以下のような中身になります。
{
"firestore": {
"rules": "firestore.rules",
"indexes": "firestore.indexes.json"
},
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
]
}
}【注意点】.firebaserc、firebase.json
削除してはいけない
.firebasercを削除すると、Firebase CLIがこのフォルダがどのプロジェクトと紐づいているか判断できなくなります(firebase deployでエラーが発生します)。
firebase.jsonを削除すると、ターミナルからのデプロイやテストができなくなります。
中身を書き換えたらdeployが必要
firebase.jsonを書き換えただけではFirebaseに反映されません。
必ず、firebase deployを実行して、設定をクラウドに反映する必要があります。




