この記事ではFirebaseを使うメリットについて紹介します。
また、Firebaseでどのくらい簡単にWebアプリを公開できるかの一例として、Vue.jsで作ったアプリをFirebaseのHostingで公開する手順について解説します。
誰向けの内容か?
この記事は下記のような悩みがある方に向けた内容となっています。
もし該当するものがあれば、ぜひFirebaseを試してみてください。
「制作したポートフォリオをできるだけ簡単に公開したい」
「Vue.jsやReactを使ってWebサービスを作りたいけれど、バックエンドは苦手なので避けたい」
「フロントエンドの勉強で何か作りたいけれど、バックエンドの実装に時間を掛けたくない」
Firebaseのメリット
Firebaseは”mBaaS”(mobile Backend as a Service)、または”BaaS”(Backend as a Service)と呼ばれるサービスです。
Backendとあるように、Firebaseはバックエンド(サーバサイド)の機能を提供しています。
Firebaseを使うと、バックエンド機能をある程度まかなうことができるようになります。
サーバサイドの開発期間を短縮できる ため、フロントエンドエンジニアにとってだけでなく、フロントエンドを学びたいサーバサイドエンジニアにとってもFirebaseは有益なサービスです。
豊富なプロダクト
Firebaseは2018年9月11日時点で18個ものプロダクトを提供しています。
その中には”Realtime Database(NoSQLクラウドデータベース)”や、”Authentication(認証機能)”が含まれていて、複数のプロダクトを組み合わせて利用することができます。
FirebaseでVue.jsで作ったプロジェクトを公開する
ここからは、FirebaseでWebアプリを公開するまでの流れ を解説したいと思います。
Firebaseを使うと手軽にWebアプリを公開できることを知ってもらうことが目的なので、Webアプリは”Vue CLI”を使って作成したデフォルトのアプリを使用します。
環境の説明
今回使用した環境は下記の通りです。
システムのバージョン: macOS 10.13.4
npmのバージョン: 6.2.0
Vue CLIのバージョン: 3.0.1
Firebase CLIのバージョン: 4.2.1
Vue.jsのプロジェクトを作成
Vue.jsのプロジェクトは、次のコマンドで作成します。
$ vue init webpack first-firebase
? Project name first-firebase
? Project description A Vue.js project
? Author aiiro
? Vue build standalone
? Install vue-router? No
? Use ESLint to lint your code? No
? Set up unit tests No
? Setup e2e tests with Nightwatch? No
? Should we run ` npm install ` for you after the project has been created? ( recommended) npm
ローカルサーバーでVue.jsの動作を確認
プロジェクトを作成ができたら、ローカルサーバーを起動して、アプリケーションが動くかどうかを確認します。
$ cd first-firebase
$ npm install
$ npm run dev
次の画面が表示されていれば、起動はOKです。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase1-1024x933.png" alt="" width="1024" height="933" class="alignnone size-large wp-image-443" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase1-1024x933.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase1-300x273.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase1-768x700.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase1.png 1212w" sizes="(max-width: 1024px) 100vw, 1024px" />
ターミナルで”Ctrl + C”を押して、ローカルサーバを停止しておきます。
Firebaseのセットアップ
Firebaseにログイン
アプリケーションの動作が確認できたところで、Firebaseの設定を始めます。
Firebase {:target=”_blank”}
Firebaseにアクセスし、右上の「コンソールへ移動」をクリックして、コンソール画面に移動します。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase2-1024x688.png" alt="" width="1024" height="688" class="alignnone size-large wp-image-444" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase2-1024x688.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase2-300x202.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase2-768x516.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase2.png 1396w" sizes="(max-width: 1024px) 100vw, 1024px" />
Firebaseプロジェクトの作成
Firebaseコンソール画面の「プロジェクトを追加」をクリックします。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase3-1024x672.png" alt="" width="1024" height="672" class="alignnone size-large wp-image-445" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase3-1024x672.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase3-300x197.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase3-768x504.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />
そうすると、プロジェクト名やプロジェクトIDを入力する画面が表示されます。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase4-885x1024.png" alt="" width="885" height="1024" class="alignnone size-large wp-image-446" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase4-885x1024.png 885w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase4-259x300.png 259w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase4-768x889.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase4.png 1272w" sizes="(max-width: 885px) 100vw, 885px" />
「プロジェクト名」に”first-firebase”を、「アナリティクスの地域」に”日本”を設定します。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase5-731x1024.png" alt="" width="731" height="1024" class="alignnone size-large wp-image-447" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase5-731x1024.png 731w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase5-214x300.png 214w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase5-768x1075.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase5.png 1114w" sizes="(max-width: 731px) 100vw, 731px" />
「プロジェクトID」は、プロジェクト名のうしろに自動で設定された英数字がついていますが、今回はサンプルのプロジェクトのため、気にしないことにします。
「次へ」をクリックします。
「新しいプロジェクトのデータ共有のカスタマイズ」の画面で「プロジェクトの作成」を選択します。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase6-842x1024.png" alt="" width="842" height="1024" class="alignnone size-large wp-image-448" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase6-842x1024.png 842w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase6-247x300.png 247w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase6-768x934.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase6.png 1166w" sizes="(max-width: 842px) 100vw, 842px" />
プロジェクトの準備ができるとメッセージが表示されますので、「次へ」をクリックします。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase7-1024x951.png" alt="" width="1024" height="951" class="alignnone size-large wp-image-449" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase7-1024x951.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase7-300x279.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase7-768x713.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase7.png 1200w" sizes="(max-width: 1024px) 100vw, 1024px" />
プロジェクトが作成されると、作成したプロジェクトの画面が表示されます。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase8-1024x591.png" alt="" width="1024" height="591" class="alignnone size-large wp-image-450" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase8-1024x591.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase8-300x173.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase8-768x443.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />
Firebaseをアプリケーションに組み込む
プロジェクトが用意できたので、Vue.jsにFirebaseを追加していきます。
画面左のナビゲーションにある歯車アイコンをクリックして、「プロジェクトの設定」をクリックします。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase9-1024x624.png" alt="" width="1024" height="624" class="alignnone size-large wp-image-451" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase9-1024x624.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase9-300x183.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase9-768x468.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase9.png 1106w" sizes="(max-width: 1024px) 100vw, 1024px" />
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase10-1024x398.png" alt="" width="1024" height="398" class="alignnone size-large wp-image-452" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase10-1024x398.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase10-300x117.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase10-768x299.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />
「ウェブアプリにFirebaseを追加」をクリックすると、HTMLのscriptタグが表示されるので、「コピー」ボタンでコピーします。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase11-1024x729.png" alt="" width="1024" height="729" class="alignnone size-large wp-image-453" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase11-1024x729.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase11-300x213.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase11-768x547.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />
コピーしたコードは”first-firebase/index.html”にコピーしたコードを貼り付けます。
index.htmlは次のようになります。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase12-1024x860.png" alt="" width="1024" height="860" class="alignnone size-large wp-image-454" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase12-1024x860.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase12-300x252.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase12-768x645.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase12.png 1564w" sizes="(max-width: 1024px) 100vw, 1024px" />
Firebase CLI
Firebase CLIの導入
ターミナルでFirebaseのコマンドを実行できるようにするために、Firebase CLIを導入します。
<img src="https://s0.wordpress.com/mshots/v1/https%3A%2F%2Ffirebase.google.com%2Fdocs%2Fcli%2F?w=160&h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /> Firebase CLI Reference | Firebase
次のコマンドを実行して、”firebase-tools”をインストールしてください。
$ npm install -g firebase-tools
インストールができたら、Firebase CLIを使ってFirebaseにログインします。
$ firebase login
“firebase login”を実行すると、匿名の情報を収集して良いかどうか質問されますので、回答してください。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase13-1024x62.png" alt="" width="1024" height="62" class="alignnone size-large wp-image-455" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase13-1024x62.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase13-300x18.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase13-768x46.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase13.png 1224w" sizes="(max-width: 1024px) 100vw, 1024px" />
Allow Firebase to collect anonymous CLI and error reporting information?
質問に回答すると、ブラウザが起動します。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase14.png" alt="" width="958" height="416" class="alignnone size-full wp-image-456" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase14.png 958w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase14-300x130.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase14-768x333.png 768w" sizes="(max-width: 958px) 100vw, 958px" />
Firebase CLIの使用を許可すると、Firebase CLIからのログインに成功します。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase15.png" alt="" width="900" height="448" class="alignnone size-full wp-image-457" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase15.png 900w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase15-300x149.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase15-768x382.png 768w" sizes="(max-width: 900px) 100vw, 900px" />
Firebase CLIで設定ファイルを作成
プロジェクト用のFirebaseの設定ファイルを作成します。
ターミナルで”first-firebase”ディレクトリに移動して、”firebase init”を実行してください。
$ firebase init
どの機能をセットアップするか質問されるので、”Hosting”をスペースキーで選択にして、Enterを押します。
Which Firebase CLI features do you want to setup for this folder? Press Space to select features, then Enter to confirm your choices.
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase16-1024x347.png" alt="" width="1024" height="347" class="alignnone size-large wp-image-458" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase16-1024x347.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase16-300x102.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase16-768x260.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />
いくつか質問が表示されるので、回答していきます。
Select a default Firebase project for this directory
“first-firebase”を選択します。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase17-1024x352.png" alt="" width="1024" height="352" class="alignnone size-large wp-image-459" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase17-1024x352.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase17-300x103.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase17-768x264.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase17.png 1110w" sizes="(max-width: 1024px) 100vw, 1024px" />
What do you want to use as your public directory?
「public directory(公開用ディレクトリ)をどこにするか?」という質問には、“dist”を入力します。
Vue.jsでは”npm run build”を行うと、”dist”ディレクトリに公開用のビルドファイルが生成されるためです。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase18-1024x384.png" alt="" width="1024" height="384" class="alignnone size-large wp-image-460" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase18-1024x384.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase18-300x113.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase18-768x288.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase18.png 1248w" sizes="(max-width: 1024px) 100vw, 1024px" />
※ distはdistribution(配布)の略です。
“firebase init”が完了すると、first-firebaseディレクトリの配下に “.firebaserc” と “firebase.json” が作成されています。
lsコマンドでファイルが作られているかどうか、確認してみましょう。
$ ls -la | grep firebase
== == == == == == == == == == == == == == == == == =
-rw-r--r-- 1 aiiro staff 58 9 10 20:37 .firebaserc
-rw-r--r-- 1 aiiro staff 132 9 10 20:37 firebase.json
Vue.jsプロジェクトをビルド
アプリケーションをデプロイする前に、ビルドして”dist/index.html”を生成しておきます。
$ npm run build
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase19-1024x413.png" alt="" width="1024" height="413" class="alignnone size-large wp-image-461" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase19-1024x413.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase19-300x121.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase19-768x310.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase19.png 1562w" sizes="(max-width: 1024px) 100vw, 1024px" />
FirebaseにVue.jsをデプロイ
準備が一通り完了したので、FirebaseのHostingを利用して、Webアプリを公開します。
<img src="https://s0.wordpress.com/mshots/v1/https%3A%2F%2Ffirebase.google.com%2Fdocs%2Fhosting?w=160&h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /> Firebase Hosting | Firebase
Firebase Hosting provides fast and secure static hosting for your web app.
デプロイには”firebase deploy”コマンドを使用します。
$ firebase deploy
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase20-1024x429.png" alt="" width="1024" height="429" class="alignnone size-large wp-image-462" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase20-1024x429.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase20-300x126.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase20-768x322.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase20.png 1380w" sizes="(max-width: 1024px) 100vw, 1024px" />
公開したプロジェクトを確認
“firebase deploy”をしたときに、ターミナル上に表示されたURLにアクセスします。
デプロイに成功していると、Vue.jsのサンプルアプリが表示されます。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase21-993x1024.png" alt="" width="993" height="1024" class="alignnone size-large wp-image-463" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase21-993x1024.png 993w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase21-291x300.png 291w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase21-768x792.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase21.png 1100w" sizes="(max-width: 993px) 100vw, 993px" />
プロジェクトの公開を停止
デプロイしたプロジェクトの公開を停止したい場合は、”hosting:disable”を使用します。
$ firebase hosting:disable
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase22-1024x102.png" alt="" width="1024" height="102" class="alignnone size-large wp-image-464" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase22-1024x102.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase22-300x30.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase22-768x77.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase22.png 1384w" sizes="(max-width: 1024px) 100vw, 1024px" />
公開を停止したあとにブラウザでアクセスして、アプリケーションが表示されなくなったことを確認します。
もし表示されたままの場合は、何度かリロードをしてみてください。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase23-1024x810.png" alt="" width="1024" height="810" class="alignnone size-large wp-image-465" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase23-1024x810.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase23-300x237.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase23-768x607.png 768w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase23.png 1452w" sizes="(max-width: 1024px) 100vw, 1024px" />
Firebaseプロジェクトの削除
Firebaseプロジェクトの削除は、この記事の”Firebaseをアプリケーションに組み込む”で、「ウェブアプリにFirebaseを追加」した画面から行います。
コンソール画面から”first-firebase”プロジェクトを選択し、左サイドメニューの歯車アイコン => 「プロジェクトの設定」を選択します。
<img src="https://s0.wordpress.com/mshots/v1/https%3A%2F%2Fconsole.firebase.google.com?w=160&h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" />
画面最下部に「プロジェクトの削除」がありますので、クリックします。
<img src="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase24-1024x488.png" alt="" width="1024" height="488" class="alignnone size-large wp-image-466" srcset="https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase24-1024x488.png 1024w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase24-300x143.png 300w, https://public-constructor.com/wp-content/uploads/2018/09/learn_firebase24-768x366.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />
プロジェクトIDを入力するように求められますので、入力してプロジェクトの削除を実施します。
まとめ
Firebaseを使うと、複雑な設定なしでWebアプリを公開することができるようになります。
FirebaseはWebアプリを公開するホスティング機能だけでなく、Realtime Database等、他にもいくつものプロダクトを提供しています。
プロダクトを組み合わせることで、作れる機能も増えていきますので、興味が湧いた方は調べてみてください。