【Node.js入門】FirebaseにNode.jsプロジェクトをホスティングする方法!

今回は、Node.jsで作られたプロジェクトをFirebaseにホスティングする方法について学習をしていきましょう!

「そもそもFirebaseって何?」
「Firebaseを使ってNode.jsプロジェクトをホスティングしたい」
「静的・動的なWebページをデプロイする方法を知りたい」

このような内容も含めて、本記事では以下のような構成で解説していきます!

【基礎】「Firebase」とは?
【基礎】「Firebase」の使い方
【実践】「Firebase」ホスティング
【実践】動的なNode.jsホスティング

この記事で、FIrebaseの使い方をしっかり学習してスキルアップを目指していきましょう!

目次

「Firebase」とは?

「Firebase」は、Googleが提供するサーバー関連のバックエンドをクラウド上で管理することができるサービスです。

Firebaseを使うことで、サーバーの構築や管理を意識する必要がなくなりアプリケーションの開発に集中することができるので便利です。

Webサービスからスマホアプリまで幅広く利用可能で、ログイン認証やデータベースなどからホスティングやトラフィックの分析・解析まで多彩な機能が提供されているのが特徴です。

本記事では、ターミナルなどのコンソールからFirebaseを手軽に利用できるCLIツールを利用した活用方法について見ていきます!

「Firebase」の使い方

この章では、基本的なFirebaseの使い方について見ていきましょう!

主に、Firebaseプロジェクトの作り方からCLIツールの導入まで学んでいきます。

初めてのプロジェクトを作成する

それでは、まず最初にFirebaseの新規プロジェクトを作成するところから始めましょう!

以下のURLからFirebaseのダッシュボードにアクセスします。

<ダッシュボードURL>
https://console.firebase.google.com

新規プロジェクトを追加するため「+」アイコンをクリックします。

好きな「プロジェクト名」「日本」を選択して作成します。

プロジェクト画面が表示されたら準備は完了です。

まだ中身はありませんので、これからNode.jsプロジェクトを作成してホスティングしていきましょう!

firebase-toolsの導入方法

コンソールからFirebaseプロジェクトを管理するために専用のCLIツールをインストールしていきましょう!

npmから簡単にインストール可能です。

$ npm install -g firebase-tools

グローバル(-g)にインストールすることでfirebaseコマンドが利用できるようになります。

次に先ほど作成したFirebaseプロジェクトと連携するためにloginコマンドを実行します。

$ firebase login

URLが表示されるのでブラウザからアクセスして、自分のGoogleアカウントを選択して認証します。

これだけでFirebaseプロジェクトと自動的に連携ができるようになります。

あとは、適当なディレクトリを作成して作業用のフォルダ内に入っておきましょう。

$ mkdir myapp
$ cd myapp

Firebaseプロジェクトの初期設定

それではFirebaseプロジェクトの中身を作成していきましょう!

まずはすべて自動的に初期設定を行ってくれるinitコマンドを実行します。

$ firebase init

このコマンドを実行すると対話形式で設定を行えるようになります。

最初にFirebaseのどの機能を利用するかを聞かれます。

? Which Firebase CLI features do you want to setup for this folder? Press Space to select features, then Enter to confirm your choices.

○Database
○Firestore
○Functions
●Hosting
○Storage

今回はひとまずホスティングを試したいので「Hosting」だけを選択してエンターキーを押します。

Firebaseに作成したプロジェクトの一覧が表示されるので、先ほど作成したものを選択します。

? Select a default Firebase project for this directory

もし、作成したものが表示されていない場合はひとまず「create a new project」を選択してあとで次のコマンドからプロジェクトを選択してみてください。

$ firebase use --add

次に、ホスティングする時の公開用フォルダを設定するのですが、一般的にはそのまま何もせずにエンターキーを押します。

? What do you want to use as your public directory?

すると、デフォルトで「public」が選択されます。

最後にSPAの設定を聞かれますが、これもそのままエンターキーを押しましょう。

? Configure as a single-page app (rewrite all urls to /index.html)?

するとデフォルトで「No」が選択されます。

これで初期設定は完了です!

Firebaseホスティングの使い方

この章では、Firebaseのホスティング機能の使い方について見ていきましょう!

主に、Firebaseのローカルサーバーの起動方法とデプロイ方法について学んでいきます。

Firebaseのローカルサーバーを起動する方法

前章でFirebaseの初期設定が完了していれば、現在のディレクトリに次のようなファイルの構成が作られているはずです。

firebasejson
public
    - 404.html
    - index.html

このプロジェクトをブラウザで開くと、publicフォルダ内にあるindex.htmlが表示されるわけです。

そこで、Firebaseへホスティングする前にローカルサーバーを起動してどのような表示になるかを確認してみましょう!

サーバーの起動はserveコマンドを実行します。

$ firebase serve

デフォルトではhttp://localhost:5000にブラウザでアクセスすると次のような画面が表示されます!

サーバーを終了するには「Ctrl + c」を押しましょう。

deployコマンドによるNode.jsのホスティング

それでは、いよいよFirebaseのホスティング機能を使ってみましょう!

と言っても、ここまでの作業を完了していればやることは簡単です。

次のdeployコマンドを実行するだけです!

$ firebase deploy

これで「https://プロジェクト名.firebaseapp.com」のURLからブラウザでアクセスできるようになります。

また、Firebaseのプロジェクト画面にあるHostingメニューを見ると、しっかりとデプロイが実行されてファイルがアップロードされているのが分かります。

動的なNode.jsプログラムのデプロイ

この章では、動的なNode.jsプロジェクトをFirebaseで動かす方法について見ていきましょう!

主に、プロジェクトの初期設定から具体的な作成方法について学んでいきます。

動的プロジェクトの初期設定

まずは前章と同じように初期設定から始めていきましょう。

初期設定はinitコマンドを実行することで開始できます。

$ firebase init

Firebaseのどの機能を使うか聞かれるので、今回は「Functions」「Hosting」の2つを選択します。

○Database
○Firestore
●Functions
●Hosting
○Storage

この「Functions」というのが動的なNode.jsを実行できる機能となります。

次に、利用する言語を聞かれるので「JavaScript」を選択します。

? What language would you like to use to write Cloud Functions?
JavaScript
TypeScript

ESLintを利用するかどうかを聞かれますが、今回は使わないのでそのままエンターキーを押して「No」にしておきます。

? Do you want to use ESLint to catch probable bugs and enforce style?

関連するNodeモジュールをインストールするか聞かれるので「Yes」を選びます。

? Do you want to install dependencies with npm now?

公開用のフォルダ設定を聞かれますが、そのままエンターキーを押します。

? What do you want to use as your public directory?

すると、デフォルトで「public」が選択されます。

最後にSPAの設定を聞かれますが、これもそのままエンターキーを押しましょう。

? Configure as a single-page app (rewrite all urls to /index.html)?

これで準備は完了です!

(※上書き(overwrite)するかを聞かれた場合はすべてNoで構いません)

Functionsを利用したNode.jsプロジェクトの作成

初期設定が完了したら、現在のディレクトリ構成を見ておきましょう!

firebasejson
public
    - 404.html
    - index.html
functions
    - index.js
    - node_modules
    - package-lock.json
    - package.json

新しくfunctionsディレクトリが作成されており、その中にいくつかファイルが用意されているのが分かります。

そこで、「index.js」ファイルの中身を次のように編集してみましょう!

const functions = require('firebase-functions');

exports.helloWorld = functions.https.onRequest((request, response) => {
    response.send("Hello from Firebase!");
});

すでにデフォルトでコメントアウトされているので、コメントを解除するだけで上記のプログラムになるはずです。

この状態でサーバーを起動してみましょう!

$ firebase serve

ブラウザから「http://localhost:5001/プロジェクト名/us-central1/helloWorld」にアクセスするとNode.jsのプログラムが実行できます。
(※「us-central1」の部分は環境によって変わります)

今回の例だと画面に「Hello from Firebase!」と表示されます

もちろん、ホスティング機能を使ってこのプロジェクトをデプロイすることも可能です。

$ firebase deploy

あとは、index.jsのファイルを編集することで好きなモジュールを追加したり、外部APIを読み込んだりして動的なNode.jsプロジェクトを作成することができるわけです。

まとめ

今回は、Node.jsプロジェクトをFirebaseにホスティングする方法について学習しました!

最後に、もう一度ポイントをおさらいしておきましょう!

・firebase-toosを導入することでコンソールからプロジェクトを管理できる
・Hosting機能を使うと静的なWebコンテンツをホスティングできる
・Functions機能を使うと動的なNode.jsプロジェクトを扱える

上記内容を踏まえて、ぜひ自分でもプログラミングに取り入れて活用できるように頑張りましょう!

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次