MENU

Firebase Hostingを使ってみる

ジーズの課題でFirebaseのRealtime Databaseを使ったのですが、Webに公開するにあたりFirebase Hostingを使用したいと思い、試行錯誤したので、対応した内容をまとめました。

目次

やりたいこと

今回やりたいことは、
Readtime Databaseを使って実装したアプリケーション(Chatアプリ)をFirebase Hostingへデプロイする
です。

なので、前提で必要なFirebaseのプロジェクトの作成方法についてはここでは扱っていません

「Hostingを始める」で早速つまずく

Firebaseは親切なので、左のメニューの「構築」からHostingを選んで、「始める」をクリックすると、ガイダンスに沿って設定できるようになっています。

↓ Hostingを選んだ状態

↓ 「始める」をクリックしたあとのガイド

なので、これ通りにやれば良いかと思いきや、見慣れない npm という文字

ここまでジーズの授業内や課題の中ではnpmを使用していませんでした。
Firebaseプロジェクト追加後に行う「ウェブアプリにFirebaseを追加」の際に「npmを使用する」を選べるのですが、授業でも「<script> タグを使用する」の方を使用していました。

ここに来て選択肢がnpmしかなさそうということが判明し、まずはnpmについて調べてみることにしました。

npmとは

Wikipediaにも解説がありましたが、下記の記事が分かりやすかったです。

npm とはNode.jsのパッケージを管理するシステム、所謂パッケージ管理システムです。

https://zenn.dev/antez/articles/a9d9d12178b7b2

Node.js???まだ学習してないところやん!と思いましたが、記事によると

npmは、Node.jsをインストールすると同時にインストールされます。

https://zenn.dev/antez/articles/a9d9d12178b7b2

とのことなので、インストールをすることにしました。

Step1:Node.jsインストール

インストールにあたってはこの記事の通りには行わず(nvmの理解が追いつかなかったともいう)
改めて「Node.js インストール」で検索をしたところ、Progateの下記のページがとても分かりやすかったのでそちらに沿って実施しました。(が、続きがあります)

mac用
Progate
Node.jsの開発環境を用意しよう!(macOS) Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。
Windows用
Progate
Node.jsの開発環境を用意しよう!(Windows) Progateはオンラインでプログラミングを学べるサービスです。プログラミングを学んでWEBアプリケーションを作ろう。

なのですが、macについては、後述するfirebaseのインストールの際に権限エラーが出るため、私は別の方法で対処しましたが、下記を参考にコマンドをを実行しながらインストールをしたほうが良いかもしれません。試せてないので参考情報です。

あわせて読みたい
Downloading and installing Node.js and npm | npm Docs Documentation for the npm registry, website, and command-line interface

Step2:Firebase CLIインストール

npm(Node.js)がインストール出来たので、再度ガイドに従ってFirebase CLIのインストールを行いました。

ところが、エラーが発生。下の方を読むと権限エラーのようです。
ググってみるとmacで同様のケースが発生しているようでした。

Firebaseのガイドの下の方に「npmへのアクセス権」のリンクがあり、そこでは「ノードバージョンマネージャーを使用してnpmを再インストールします」が推奨されていました。

If you see an EACCES error when you try to install a package globally, you can either:

  • Reinstall npm with a node version manager (recommended),or
  • Manually change npm’s default directory

This is the best way to avoid permissions issues. To reinstall npm with a node version manager, follow the steps in “Downloading and installing Node.js and npm“. 

https://docs.npmjs.com/resolving-eacces-permissions-errors-when-installing-packages-globally

先ほど、Node.jsインストールの項で記載した、コマンドをを実行しながらインストールをしたほうが良いかも、というのはここの点に絡んでいます。(リンクも上記の”Downloading and installing Node.js and npm“と同じ)

ただ、私は管理者権限でインストールをする(=頭にsudoをつけてインストールする)、というやり方を行いました。

ぐぐってみると割とのこの方法で乗り切っている方が多かったので、今回はまずそれに沿うことにしました。

sudo npm install -g firebase-tools

これで無事インストールが成功しました!

Step3:Firebaseログイン・初期化

インストールが終わったので、次のガイドに進みます。

ログインの前に「ウェブアプリのルート ディレクトリに移動するか、ルート ディレクトリを作成します」とあるので、ルートディレクトリを用意します。ここ大事。

ターミナル上で、cdを使って、ルートディレクトリに移動してから、まずはガイドの通りにログインします。
(ログイン自体はどこでやってもよさそうですが、後続作業があるのでルートディレクトリにて実施)

ターミナルでディレクトリ移動するには cd と打って半角スペース開けてから
 ・移動するディレクトリ名を書いてEnter
 または
 ・該当のディレクトリをFinderで開いてからそれをドラッグ&ドロップ

firebase login

次にプロジェクトの開始のコマンドをやるのですが、ここのコードが公式のスタートガイドと若干違ったんですよね。
ガイダンス画面は「firebase init」、公式のスタートガイドは「firebase init hosting

https://firebase.google.com/docs/hosting/quickstart?hl=ja

結論としては、「firebase init hosting」が良かったです。

firebase init hosting

理由は「firebase init」で実行するとfirebaseのどの機能で初期設定するか聞かれてしまうのですが、
firebase init hosting」だと、その質問なくHostingの初期設定で話が進んでいきます。

firebase initの場合

どの機能か聞かれる(Hostingも複数あって少し迷子)

firebase init hostingの場合

そのままProjectとHostingの質問に入る

インストールではいくつか質問がされますが、公式ドキュメントに解説もあるので参考にしてみてください

https://firebase.google.com/docs/hosting/quickstart?hl=ja#initialize

もし悩む場合は、デフォルト値が灰色で表示されていたり(上記のpublic)、Yes / Noもおすすめの方が大文字になっているようなのでそれで決めてもいいかもしれないです。

質問を全て回答して初期化が完了すると、先ほど用意したルートディレクトリ上にファイルやディレクトリ(フォルダ)が増えています。おそらく「firebase.json」ファイルと、「public」フォルダがあり、publicフォルダの方はfirebaseの初期のhtmlファイルが入っているかと思います。(今後仕様は変わるかもなので2024/7時点の話です)

Step4:デプロイ

ここまでで設定は終わったので、最後はデプロイです。以降、修正とかで再デプロイする際もここからでOKです。

事前準備

先ほどの初期設定で生成された「public」フォルダが公開用のディレクトリになります。

なので、アップロードしたいhtml・css・jsファイルなどをpublicフォルダに格納します。index.htmlはfirebaseの初期のものが格納されていますが、上書きして問題ないです。

デプロイ作業

publicフォルダへのファイルの格納が終わったらデプロイを実行します。

ガイドにある通りデプロイのコマンド実行はルートディレクトリから行います。publicフォルダからではありません。

問題なくデプロイ出来ているかを確認して、デプロイ完了です!
URLは、ガイドに記載のあるURL(デプロイ後、アプリを〜の部分)、もしくは、プロジェクトの画面の左側のHostingをクリックした際に、右側に表示される内容の中にもURLの記載があります。(下記の赤枠部分)

以上、Firebase Hostingの設定〜デプロイについてでした。私もまとめるなかで改めて知識の整理ができました。
どなたかの参考になってますと幸いです。

目次