Google Firebase の Cloud Firestore (クラウド・ファイアストア)で Web アプリのホスティングとデプロイを行う(書きかけ)
Google Firebase でできること
オンラインストレージ
データベース: Python, JavaScript と相性が良い.
その他、認証(ID,パスワード)など(セキュリティや課金に必要)
※ iOS, Android, Web で動く.使用には Google のアカウントが必要
クラウド・ファイアストア(Cloud Firestore)を扱うプロジェクトの新規作成
- Firebase の Web ページを開く
https://firebase.google.com/?hl=ja
※ このとき、google のアカウント(IDとパスワード)が必要になる可能性がある
- 「使ってみる (GET STARTED)」をクリック
- Firebase コンソールの画面に変わるので確認する
- Firebase コンソールの画面で、「プロジェクトを追加」をクリック
※ このとき、いつまで待っても画面が変わらないというときは、Webブラウザで「サインアウト」してもう1度やり直すとうまく行くかもしれません.
- プロジェクトの追加
まず、「地域/ロケーション」を展開する
次のように設定する
- プロジェクト名: 何でもよいが、あとで分かりやすい名前
- アナリティクスの地域: 日本
- チェックボックス: 同意できる場合のみチェック(同意できないときは、Firebase を使わない)
- プロジェクトの作成が終了すると、画面が変わる。「次へ」をクリック
- 画面が変わるので確認.
まず、料金プランが「Spark プラン」になっていることを確認する.
Spark プランは料金無料のプラン.
- クラウド・ファイアストア(Cloud Firestore)を使いたいので使いたいので、「Cloud Firestore」をクリック
- クラウド・ファイアストア(Cloud Firestore)のデータベースを作成したいので、Cloud Firestore の下の「データベースを作成」をクリック
- クラウド・ファイアストア(Cloud Firestore)のセキュリティルールでは、
ロックモードかテストモードを選ぶ.
※ ここでは、試用することにしたい(公開したら問題のあるようなデータは入れずに、手軽に試してみたい)ので、
「テストモードで開始」を選び「有効にする」をクリック
- データベースの作成が始まる。しばらく待つ。
- データベースの作成が終わると、画面が変わるので確認する
この画面で、データベースの確認、コレクションの追加、ドキュメントの追加を行うことができる。
プロジェクトの削除
プロジェクトを削除したいときは、次の手順で行う
- プロジェクトの全般のWebページで、「Project Overview」の右横のボタンをクリック。
- 「プロジェクトの設定」をクリック。
- 画面の下の「プロジェクトの削除」をクリック。
- すべてを確認、チェックしてから、「プロジェクトの削除」をクリック。
データベースにコレクション、ドキュメントの追加
ここで行うこと
- 追加するコレクションのコレクションID: products
- 追加するドキュメントの中身
フィールド: id, タイプnumber, 値1
フィールド: name, タイプstring, 値apple
フィールド: price, タイプnumber, 値100
- コレクションを追加したいので「コレクションを追加」をクリック
- 追加するコレクションのコレクションID(products) を設定して、
「次へ」をクリック
- 追加するドキュメントについて、
フィールド: id, タイプnumber, 値1を設定する。
フィールドを追加したいので、「フィールドを追加」をクリック
- 今度は、
フィールド: name, タイプstring, 値apple
フィールドを追加したいので、「フィールドを追加」をクリック
- 今度は、
フィールド: price, タイプnumber, 値100
「保存」をクリック
- いま追加したドキュメントとコレクションを確認
Windows マシンでホスティングを行うように設定
※ Ubuntu を使うときは、次のパートを見てください
- Windows マシンで、firebase-tools のインストール
- Windows で,コマンドプロンプトを管理者として実行
- firebase-tools をインストールするために、今のコマンドプロンプトで,次のコマンドを実行
※ npm がない!というときは、「Node.js Windows 版のインストール」の Web ページの手順でインストールする
npm install -g npm
npm install -g firebase-tools
- コマンドプロンプトを閉じる
- Windows パソコンから Firebase にログイン
- 新しく、コマンドプロンプトを開く
- コマンドプロンプトで,次のコマンドを実行
- Windows の警告表示が出ることがある.
このときは「アクセスを許可する」をクリック
- 「情報を収集してよい」ことにして「Y」のあとに「Enterキー」
- その後、複数の Web ブラウザの中から1つのWebブラウザを選ぶ画面が出ることがある(すでに firebase にログイン済みのときは、この画面は出ない
Google Chrome を選んだとして説明を続ける
- Web ブラウザの画面が開く.Google のアカウント(ID とパスワード)でログインする.(すでに firebase にログイン済みのときは、この画面は出ない
- 「Firebird CLI が Google アカウントへのアクセスをリクエストしている」に対しては「許可」をクリック
- ログインに成功したことの確認
- 「firebase list」で,作成済みプロジェクトのプロジェクト ID を確認してみる
- 引き続き、Firebase のホスティング (Hosting) ができるように Windows パソコン側の設定を行う
- Firebase プロジェクトのディレクトリ書き込み権限のあるディレクトリ)に、カレントディレクトリを変える。
空のディレクトリでよい。
cd <書き込み権限のあるディレクトリ(フォルダ)>
- 最初は、firebase の初期化を行う
今のコマンドプロンプトで,次のコマンドを実行
- 表示を確認する。そして、Are you ready to proceed ? に対しては、
「Y」のあとに「Enterキー」
- Which Firebase CLI feature do you want to setup for thi folder に対しては
「Hosting」を選ぶ
矢印キーで「Hosting」を選ぶ。
スペースキーを押し「*」マークがついたことを確認したら、Enterキー
- デプロイの対象にしたいプロジェクトを矢印キーで選ぶ。Enterキー
- 「What do you want touse as your public directory? (public)」に対しては、「public にしたい」ことにして、Enterキー
- 「Configure as a single-page app (rewrite all urls to /index.html」に対しては設定する
単一ページにしたいことにして、「y」、Enter キー
- 設定終了の確認
- ファイルの確認
./firebase.json, ./public/index.html というファイルができているので確認する
- ./public/index.html ファイルの確認
./public/index.html の中身を確認する.
エディタを使うか、Windows のコマンドプロンプトで、type コマンドを使う。
type コマンドで表示したときなどは文字化けする場合があるが問題ない .
- ローカルで Web サーバの起動
- 設定ができたかを確認するために、Web ブラウザで localhost:5000 を開く
画面が表示されたら OK.
Web ブラウザを閉じる.
CTRL + C (同時押し)で Web サーバを止める
Ubuntu マシンでホスティングを行うように設定
- Ubuntu で 端末を実行
- firebase-tools をインストールするために、端末で,次のコマンドを実行
※ npm がない!というときは、「sudo apt install npm」でインストールする
npm install -g npm
npm install -g firebase-tools
- Ubuntu から Firebase にログイン
- 端末で,次のコマンドを実行
- Web ブラウザの画面が開く.Google のアカウント(ID とパスワード)でログインする.
- 「Firebird CLI が Google アカウントへのアクセスをリクエストしている」に対しては「許可」をクリック
- ログインに成功したことの確認
- 「firebase list」で,作成済みプロジェクトのプロジェクト ID を確認してみる
- 引き続き、firebase の初期化を行う
今の端末で,次のコマンドを実行
- Which Firebase CLI feature do you want to setup for thi folder に対しては
「Hosting」を選ぶ
- 既定(デフォルト)にしたい Firebase プロジェクトの選択
Firebase プロジェクトを1つ選ぶか、新しいプロジェクトを作る
- 公開したいディレクトリの選択.既定では「public」である.問題なければ Enter キーで続行.問題があれば,設定し直す.
- 次は既定(デフォルト)のままでよい.Enter キーで続行.
- ファイルの確認
./firebase.json, ./public/404.html, ./public/index.html ができているので確認する
- ローカルで Web サーバの起動
- 設定ができたかを確認するために、Web ブラウザで localhost:5000 を開く
クラウド・ファイアストア(Cloud Firestore)の Web アプリを動かしてみる
【関連する外部ページ】
https://firebase.google.com/docs/firestore/quickstart?hl=ja
- まず、新しい .html形式ファイルを準備する。
先ほど自動生成された public の下の index.html ファイルを、別のファイル名のファイルにコピーする。
ファイル名は何でもよいが、「1.html」のように、拡張子を .html にする
そして「public」ディレクトリの直下に置くこと
copy public\index.html public\1.html
- ファイルが増えていることを確認
- 次の手順で、自分の API キーなどを得る
- Firebase の Web ページを開く
https://firebase.google.com/?hl=ja
- 「使ってみる」をクリック
- 先ほど作成したプロジェクトを選ぶ
- 「Web アプリに Firebase を追加」をクリック
- アプリのニックネームを登録する。
ニックネームは何でもいが、日本語を使うのは避けておく
- コピーして使いたいので「コピー」をクリック
- エディタを
使って、先ほど作成した.html 形式ファイル
の中の「</head>」 の直前に入れる
- 確認のため,このファイルを Web ブラウザで表示してみる
URL のところに「file:///H:/firebase/public/1.html」のように、ファイル名をフルパスで書く
表示されれば OK (真っ白な画面が出たり、エラーメッセージが出た場合は良くない)
- 先ほどの html ファイルに、Cloud Firestore のインスタンスの初期化を行うプログラム追加
https://firebase.google.com/docs/firestore/quickstart?hl=ja
の記載により、次を、
「firebase.initializeApp(firebaseConfig);」の直後に追加
追加を終わったら保存
var db = firebase.firestore();
- Web アプリを動かてみる。
先ほどの html ファイルの「<body>」から「</body>」のところを、次のプログラムに入れ替える
これは、コレクション「products」の中身を、コンソールに表示するプログラム
<body>
<script>
db.collection("products").get().then((querySnapshot) => {
querySnapshot.forEach((doc) => {
console.log(`${doc.id} => ${doc.data()}`);
});
});
</script>
</body>
※ 参考 Web サイト:https://firebase.google.com/docs/firestore/quickstart?hl=ja
の記載のプログラムを使う
- 動作確認のため、
Web ブラウザで localhost:5000/1.html を開く
※ 「1.html」のところは,実際に作成したファイルのファイル名にすること
※ 「画面が開かないよ!」というときは「firebase serve」を起動してから、もう1度試してみる
次のような画面(何もない画面)で OK
- 動作確認のため、
https://firebase.google.com/?hl=ja を使って、
データベースの中身を表示してみる
users というコレクションが追加され、その中に、オブジェクトが生成されていることが確認できる。
- デプロイ操作
手元のパソコンで作成したファイル群について、
手元のパソコンから firebase のサーバに一括アップロードし,サービスを公開する操作(デプロイ)を行う.
- 「firebase list」で,作成済みプロジェクトのプロジェクト ID を確認
- プロジェクト IDを指定してデプロイする
firebase deploy --project <プロジェクトID>
- デプロイの結果、「Hosting URL」などが表示されるので確認する
- いま表示された「Hosting URL」と、先ほど作成した「ファイル名」を Web ブラウザで、
https://hoge-1234.firebaseapp.com/1.html のように指定する
先ほどと同じように、何も表示されない画面が出てくれば OK.
同じ画面だが、今度は、全世界に公開されている
「firebase open hosting:site」を実行して、Webブラウザでファイル名を書き加えるという手順でも同じ結果になる
「firebase open hosting」を実行すると、ホスティング (Hosting) のダッシュボードが開く
- 動作確認のため、
https://firebase.google.com/?hl=ja を使って、
データベースの中身を表示してみる
オブジェクトが 1つ増えていることが確認できる。