始める前に
- ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
- ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
- 画面左上の [ラボを開始] をクリックして開始します
Register your app
/ 30
Set up authentication
/ 35
Add a customer page to your web app
/ 35
Register your app
/ 30
Set up authentication
/ 35
Add a customer page to your web app
/ 35
リリーさんは 12 年前、獣医クリニック チェーン「Pet Theory」を開業しました。Pet Theory チェーンはここ数年で急速に拡大しました。古い予約システムでは増加したトラフィックを処理しきれず、クライアントが自分の予約をスケジュールすることもできないため、リリーさんは IT 部門のパトリックさんとコンサルタントのルビーさんに対して、簡単にスケーリングできるクラウドベースのシステムを構築するよう依頼しました。このラボでは、ユーザーが情報を記録し、予約をリアルタイムでスケジュールできる本格的な Firebase ウェブアプリを構築します。
この図は、使用するサービスの概要と、そのつながりを示しています。
このラボでは、次の方法について学びます。
これは中級レベルのラボです。Cloud コンソール環境とシェル環境に精通していることを前提としています。Firebase の使用経験は役立ちますが、必須ではありません。このラボを受講する前に、次のラボを完了しておくことをおすすめします。
ファイルの編集にも慣れている必要があります。ご自身で使い慣れたテキスト エディタ(nano、vi など)を使用するか、上部のリボンにある Cloud Shell からコードエディタを起動できます。
準備ができたら下にスクロールし、手順に沿ってラボ環境をセットアップします。
ルビーさんはパトリックさんにメールを送りました。
|
ルビーさん(ソフトウェア コンサルタント) |
パトリックさん 先週はお疲れ様でした。クリニックのデータが Firestore に移行されたことを確認しました。 次のタスクは Firebase を使用して Pet Theory のウェブサイトをホストすることですね。 ルビー |
|
パトリックさん(IT 管理者) |
ルビーさん Firebase Hosting については聞いたことがありませんが、どのようなメリットがありますか?何から始めればよいですか? パトリック |
|
ルビーさん(ソフトウェア コンサルタント) |
パトリックさん Firebase Hosting の主なメリットは、サーバーレスであるため、インフラストラクチャを管理しなくてよいことです。セキュリティ ルールもアプリケーション内に埋め込まれるため、権限を絞り込んで、顧客データを処理する際の問題を最小限に抑えることができます。 「従量課金制」料金モデルも用意されているので、Firebase は今回のユースケースに合った包括的なモバイル開発プラットフォームといえます。 ルビー |
|
パトリックさん(IT 管理者) |
ルビーさん Firebase を使用すると、セキュリティとインフラストラクチャの管理(私の仕事の大部分)がずっと簡単になるように思います。アイドル状態のサーバーには課金されないというのもいいですね。 パトリック |
ルビーさんはパトリックさんに背景情報を電子メールで送信し、重要な作業について検討するための打ち合わせを設定します。この打ち合わせで、パトリックさんは次のことを行う必要があることがわかりました。
次に、パトリックさんが行うこれらの作業をサポートしていきます。
シークレット ウィンドウを開き、Firebase コンソールに移動します。
プロンプトが表示されたら、次の情報を入力します。
Firebase の利用規約が表示されたら、内容を読み、同意して [続行] をクリックします。
[プロジェクトの概要] ページで [+ アプリを追加] をクリックし、ウェブアイコンを選択します。
[アプリのニックネーム] の入力を求められたら、「Pet Theory」と入力します。
[このアプリの Firebase Hosting も設定します] の横にあるチェックボックスをオンにします。
サイトのプルダウンで、[新しいサイトを作成] を選択するか、サイトが自分のプロジェクト ID と一致していることを確認します(またはラボの詳細に記載されている指示に従います)。
[アプリの登録] ボタンをクリックします。
以降のステップ([Firebase SDK の追加]、[Firebase CLI のインストール]、[Firebase Hosting へのデプロイ])で、[次へ] または [コンソールに進む] をクリックしてメイン ダッシュボードに戻ります。
これで、Firebase アプリケーションが構成されました。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
Firebase コンソールで、ユーザーが Google でログインできるように Firebase Authentication を設定します。
左側のナビゲーション メニューで、[認証] をクリックします(固定されていない場合は、[プロジェクト ショートカット] または [プロダクトのカテゴリ] > [セキュリティ] の下にあります)。
初めての場合は、[使ってみる] をクリックします。
[ログイン方法] タブで、プロバイダのリストから [Google] を選択します。
構成ダイアログで、[有効にする] 切り替えボタンをクリックします。
プルダウン メニューからサポートメールを選択し、[保存] をクリックします。
認証用のカスタム ドメインを追加するために、[認証] ページの上部にある [設定] タブをクリックします。
設定ペインの左側のメニューから [承認済みドメイン] を選択します。
[ドメインを追加] ボタンをクリックします。
次のドメインを入力します(必要に応じて、自分のプロジェクト ID に置き換えます)。
[追加] ボタンをクリックします。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
次に、Firestore データベースを設定します。
左側のナビゲーション メニューで、[Database と Storage] の下にある [Firestore] をクリックします。
Cloud Firestore のランディング ページで、[データベースを作成] ボタンをクリックします。
[ステップ 1: エディションを選択] で、[Standard エディション] を選択して [次へ] をクリックします。
[ステップ 2: データベース ID とロケーション] で、適切なロケーション(nam5 など)を選択するか、デフォルトを受け入れて、[次へ] をクリックします。
[ステップ 3: 構成] で、[テストモードで開始する] を選択して [作成] をクリックします。
データベースがプロビジョニングされたら、[ルール] タブをクリックします。
認証されたユーザーが自分のデータを読み書きできるように、セキュリティ ルールを以下に置き換えます。
[公開] をクリックして、変更を Firebase にデプロイします。
これで、Firebase Authentication と Firestore が設定されました。バックエンドの構成が完了しました。
ここまで、ウェブ デベロッパーがコードをデプロイできるように Firebase Hosting 環境をセットアップするパトリックさんの作業をサポートしてきました。
しかし、パトリックさんは Firebase Authentication を有効にしたことも、コードを Firebase にデプロイしたこともないため、メールでルビーさんにサポートを求めます...
|
パトリックさん(IT 管理者) |
ルビーさん ヒントをいただきありがとうございます。Firebase 環境はすべて設定できたようです。次のタスクは、ウェブサイト開発者が作成したコードのデプロイですね。 コードのデプロイにはどのような作業が伴うのか、次に何をする必要があるか教えていただけませんか? パトリック |
|
ルビーさん(コンサルタント) |
パトリックさん 環境を設定できたんですね。アプリケーションを実行して、次の機能を追加する方法をメールにてご説明します。
ルビー |
|
パトリックさん(DevOps エンジニア) |
ルビーさん かなりの作業量になりそうですね。 新しい機能を追加するたびに構造を変更する必要があるということですか?確認するだけでも時間がかかりますが... パトリック |
|
ルビーさん(コンサルタント) |
パトリックさん 面倒な作業のほとんどは Firebase ライブラリで行うことができます。 Firebase には、ローカルホストをバックエンドの Firebase プロジェクトに接続するための優れたコマンドライン ツールが用意されています。 `firebase init` を使用して、使用するプロダクトを Firebase に通知します。 プロジェクトの設定が完了したら、コマンドラインから `firebase deploy` を呼び出すだけです。 ルビー |
|
パトリックさん(IT 管理者) |
ルビーさん それを聞いて安心しました。Firebase Hosting の良いところがだんだんわかってきました。 パトリック |
このタスクでは、Cloud Shell と Cloud Shell エディタを使用して、アプリケーション コードのクローンを作成し、必要な Node.js パッケージをインストールします。
Firebase コンソールで使用しているのと同じシークレット ウィンドウで、新しいタブを開き、Google Cloud コンソールに移動して、利用規約に同意します(同意を求められた場合)。
Google Cloud コンソールのツールバーで [Cloud Shell をアクティブにする] をクリックします。
Cloud Shell ターミナルで次のコマンドを実行して、Cloud Storage バケットからラボファイルをコピーします。
コードを表示して編集するために、Cloud Shell ツールバーの [エディタを開く] ボタンをクリックします。
Cloud Shell エディタで、ファイル エクスプローラを使用して pet-theory/lab02 フォルダに移動します。
Cloud Shell エディタでターミナルを開き(または既存の Cloud Shell ターミナルを使用し)、lab02 ディレクトリに移動します。
次のコマンドを実行して、Node.js パッケージをインストールします。
これで、アプリケーションをバックエンドの Firebase プロジェクトにリンクする準備が整いました。
IDE で Firebase を接続し、アプリケーションをデプロイします。
次のコマンドを入力して、Firebase プロジェクトへのアクセスを承認します。
注:
Firebase は、ローカル環境が Firebase プロジェクトに接続できるように承認しようとします。そのため、適切な認証情報を使用してこの操作が円滑に行われるように、ブラウザ アクティビティをシークレット ウィンドウで行っていることを確認してください。
「Y」と入力して、Firebase で Gemini 機能を有効にします。
Firebase にエラー報告情報の収集を許可するかどうかを尋ねられたら「Y」と入力し、Enter キーを押します。
生成された URL をクリックして、同じシークレット ウィンドウで別のタブを開きます。
ラボのアカウントを選択し、[許可] をクリックします。
[Yes, I just ran this command] をクリックして続行します。
[Yes, this is my session ID] をクリックしてセッション ID を確認します。
生成されたアクセスコードをコピーして Cloud Shell プロンプト [Enter authorization code:] に貼り付け、Enter キーを押します。
次のような出力が返されます。
出力例:
注:
この時点で、localhost はバックエンドの Firebase プロジェクトにリンクされています。
これで Firebase が接続され、承認されました。次のステップは、使用する Firebase プロダクトを初期化することです。
IDE で、必要なプロダクトを Firebase に通知します。
現在の作業ディレクトリで新しい Firebase プロジェクトを初期化します。
注:
このコマンドを実行すると、プロジェクト ディレクトリと Firebase プロダクトを順に設定できます。このフォルダに設定する Firebase CLI 機能を選択します。矢印キーを使用してリスト内を上下移動します。プロダクト オプションを選択するには Space キーを使用します。
以下のプロダクトを選択します。
矢印キーと Space キーを使用して、[Firestore] と [Hosting] を選択します。シェルで次のように選択されていることを確認して、Enter キーを押します。
残りの手順を実行して Firebase を構成します。
firestore.rules ファイルを保持します。firestore.indexes.json ファイルを保持します。index.html ファイルの書き換えを禁止し、Enter キーを押します。404.html ファイルの上書きを確認するメッセージが表示されたら、N キーを押します。index.html ファイルの上書きを確認するメッセージが表示されたら、N キーを押します。出力例:
これでローカルの構成が完了しました。
Cloud Shell でこのステップの操作を続けます。
コードエディタで、pet-theory/lab02 フォルダにいることを確認します。
firebase.json を編集し、hosting セクションを site キーに更新します。
ターミナルを開き、サイト ID 値を使用して Firebase アプリケーションをデプロイします。次に例を示します。
出力:
生成されたホスティング URL(
重要:
個人の認証情報をこのラボの認証として使用しないでください。
[Google でログイン] ボタンをクリックします。
注:
「browser is not supported or 3rd party cookies and data may be disabled」というエラーが表示された場合は、ブラウザで Cookie を有効にしてください。
Chrome の場合は、URL タブの右端にある目のアイコンをクリックし、ポップアップに表示される青いリンクをクリックします。[サイトが動作していない場合] をクリックしてブラウザ設定を更新し、Cookie の使用を許可します。
指定されたユーザー名(例:
Pet Theory のような小さな会社には、これを行うためのリソースや必要なスキルがありません。 この場合、アプリケーション ユーザーが既存の Google アカウント(または他の ID プロバイダ)でログインできるようにすると便利です。
注:
パスワードの管理は難しく、会社側のリスクを高める可能性があります。ユーザーも、別のユーザー ID やパスワードを作成することは望みません。
これで、ユーザーが Google 認証を使用して予約アプリにアクセスするためのコードがデプロイされました。
ターミナルに戻り、エディタを使用して public フォルダにあるファイルの内容を表示します。
public/customer.js ファイルを開き、次のコードをコピーして貼り付けます。
public/styles.css ファイルを開き、次のコードを貼り付けます。
ターミナル コマンドラインから次のコマンドを実行します。
出力:
アプリのタブに移動し、CMD+SHIFT+R キー(Mac の場合)または CTRL+SHIFT+R キー(Windows の場合)でページのハード再読み込みを行います。通常の方法でページを更新しても、必要な更新内容は表示されません。
いくつかの顧客情報を入力します。名前と電話番号を入力します。
顧客名:
顧客の電話番号:
[Save Profile] をクリックします。
Firebase コンソールに戻ります。
[構築] > [Firestore Database] をクリックして、保存されたプロフィール情報を表示します。
ウェブアプリのページに戻り、[Appointments] リンクをクリックします。予約コードがまだデプロイされていないため、空白のページが表示されます。
[進行状況を確認] をクリックして、目標に沿って進んでいることを確認します。
正しく表示されました。
Firestore では、クライアント(ウェブアプリとネイティブ モバイルアプリ)がリアルタイムで更新されるので、ユーザーが更新または再読み込みを行う必要はありません。
このラボでは、Firebase を使用して堅牢なサーバーレス ウェブ アプリケーションを作成しました。Firebase プロジェクトを作成して構成してから、サーバーサイドの認証と認可を自動化する Firestore セキュリティを追加しました。次に、Google ログインをウェブアプリに追加し、ユーザーが連絡先情報や予約を追加できるようにデータベースを構成しました。最後に、ユーザーによる予約のスケジュールを可能にするコードを確認してデプロイし、ウェブアプリで Firebase のリアルタイムの更新を確認しました。これで、この学習プログラムの他のラボを受講する準備が整いました。
Google Cloud トレーニングと認定資格を通して、Google Cloud 技術を最大限に活用できるようになります。必要な技術スキルとベスト プラクティスについて取り扱うクラスでは、学習を継続的に進めることができます。トレーニングは基礎レベルから上級レベルまであり、オンデマンド、ライブ、バーチャル参加など、多忙なスケジュールにも対応できるオプションが用意されています。認定資格を取得することで、Google Cloud テクノロジーに関するスキルと知識を証明できます。
マニュアルの最終更新日: 2026 年 5 月 31 日
ラボの最終テスト日: 2026 年 5 月 31 日
Copyright 2026 Google LLC. All rights reserved. Google および Google のロゴは Google LLC の商標です。その他すべての企業名および商品名はそれぞれ各社の商標または登録商標です。
このコンテンツは現在ご利用いただけません
利用可能になりましたら、メールでお知らせいたします
ありがとうございます。
利用可能になりましたら、メールでご連絡いたします
1 回に 1 つのラボ
既存のラボをすべて終了して、このラボを開始することを確認してください