コンソールへ移動

Firebase を JavaScript プロジェクトに追加する

このガイドでは、Firebase JavaScript SDK をウェブアプリで使用する手順について説明します。また、Node.js デスクトップや IoT アプリケーションなどのエンドユーザー アクセスのクライアントとして使用する場合も、この手順に従ってください。

始める前に

  • お好みのエディタまたは IDE をインストールします。

  • JavaScript プロジェクト(ウェブまたは Node.js)を開きます。

  • Google アカウントを使用して Firebase にログインします。

JavaScript プロジェクトを作成せずに Firebase を試してみる場合は、クイックスタートのサンプルをダウンロードしてください。

ステップ 1: Firebase プロジェクトを作成する

JavaScript アプリに Firebase を追加する前に、アプリに接続する Firebase プロジェクトを作成します。

Firebase プロジェクトの詳細やプロジェクトにアプリを追加するベスト プラクティスついては、Firebase プロジェクトについて理解するをご覧ください。

ステップ 2: アプリを登録する

Firebase プロジェクトを作成したら、プロジェクトにウェブアプリを追加できます。

Firebase プロジェクトにアプリを追加するベスト プラクティスと注意事項については、Firebase プロジェクトについて理解するをご覧ください。

  1. Firebase コンソールの [プロジェクトの概要] ページで、ウェブアイコン(code)をクリックして設定ワークフローを起動します。

    すでに Firebase プロジェクトにアプリまたはゲームを追加している場合は、[アプリを追加] をクリックするとプラットフォームのオプションが表示されます。

  2. アプリのニックネームを入力します。

    ニックネームは内部用の簡便な ID であり、Firebase コンソールでのみ表示されます。

  3. (省略可)ウェブアプリ向けに Firebase Hosting を設定します。

    • Firebase Hosting の設定は、今すぐでも後ででもセットアップできます。また、プロジェクト設定で、いつでも Firebase ウェブアプリを Hosting サイトにリンクできます。

    • 今すぐ Hosting を設定する場合は、プルダウン リストからサイトを選択して Firebase ウェブアプリにリンクします。

      • このリストには、プロジェクトのデフォルトの Hosting サイトと、プロジェクトで設定した他のサイトが表示されます。

      • Firebase ウェブアプリにすでにリンクしているサイトは、追加のリンクには使用できません。各 Hosting サイトは、単一の Firebase ウェブアプリにのみリンクできます。

  4. [アプリの登録] をクリックします。

ステップ 3: Firebase SDK を追加して Firebase を初期化する

サポートされている Firebase プロダクトをアプリに追加できます。

Firebase SDK をアプリに追加する方法は、アプリに Firebase Hosting を使用するよう選択したかどうか、アプリで使用するツール(バンドラなど)、Node.js アプリを構成するかどうかによって異なります。

Hosting URL から

Firebase Hosting を使用する場合は、Firebase JavaScript SDK ライブラリを予約済みの URL から動的に読み込むようにアプリを構成できます。詳しくは、予約済みの Hosting URL から SDK を追加するをご覧ください。

この設定オプションでは、Firebase にデプロイした後で、デプロイされた Firebase プロジェクトから Firebase 構成オブジェクトが自動的に取得されます。同じコードベースを複数の Firebase プロジェクトにデプロイできますが、firebase.initializeApp() に使用している Firebase の構成を追跡する必要はありません。

この設定オプションは、ウェブアプリをローカルでテストする場合にも使用できます。

  1. 特定の Firebase サービス(Authentication と Cloud Firestore など)のみを含めるには、Firebase サービスを使用する前に、次のスクリプトを <body> タグの末尾に追加します。

    <body>
      <!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->
    
      <!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
      <script src="/__/firebase/6.2.0/firebase-app.js"></script>
    
      <!-- Add Firebase products that you want to use -->
      <script src="/__/firebase/6.2.0/firebase-auth.js"></script>
      <script src="/__/firebase/6.2.0/firebase-firestore.js"></script>
    </body>
    


  2. アプリで Firebase を初期化します。予約済みの Hosting URL を使用する場合、Firebase 構成オブジェクトを含める必要はありません。

    <body>
      <!-- Previously loaded Firebase SDKs -->
    
      <!-- Initialize Firebase -->
      <script src="/__/firebase/init.js"></script>
    </body>
    

CDN から

Firebase JavaScript SDK の部分的なインポートを構成し、必要な Firebase プロダクトのみを読み込むことができます。Firebase は、Firebase JavaScript SDK の各ライブラリをグローバル CDN(コンテンツ配信ネットワーク)に格納しています。

  1. 特定の Firebase サービス(Authentication と Cloud Firestore など)のみを含めるには、Firebase サービスを使用する前に、次のスクリプトを <body> タグの末尾に追加します。

    <body>
      <!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->
    
      <!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
      <script src="https://www.gstatic.com/firebasejs/6.2.0/firebase-app.js"></script>
    
      <!-- Add Firebase products that you want to use -->
      <script src="https://www.gstatic.com/firebasejs/6.2.0/firebase-auth.js"></script>
      <script src="https://www.gstatic.com/firebasejs/6.2.0/firebase-firestore.js"></script>
    </body>
    


  2. アプリで Firebase を初期化します。

    <body>
      <!-- Previously loaded Firebase SDKs -->
    
      <script>
        // TODO: Replace the following with your app's Firebase project configuration
        var firebaseConfig = {
          // ...
        };
    
        // Initialize Firebase
        firebase.initializeApp(firebaseConfig);
      </script>
    </body>
    

モジュール バンドラを使用する

Firebase JavaScript SDK の部分的なインポートを構成し、必要な Firebase プロダクトのみを読み込むことができます。バンドラ(Browserify や webpack など)を使用している場合は、必要に応じて import を使用して個々の Firebase プロダクトをインポートします。

  1. Firebase JavaScript SDK をインストールします。

    1. package.json ファイルがない場合は、JavaScript プロジェクトのルートから次のコマンドを実行して作成します。

      npm init

    2. 次のコマンドを実行して firebase npm パッケージをインストールし、package.json ファイルに保存します。

      npm install --save firebase

  2. 特定の Firebase サービス(Authentication と Cloud Firestore など)のみを含めるには、Firebase モジュールを import でインポートします。

    // Firebase App (the core Firebase SDK) is always required and must be listed first
    import * as firebase from "firebase/app";
    
    // Add the Firebase products that you want to use
    import "firebase/auth";
    import "firebase/firestore";
    
  3. アプリで Firebase を初期化します。

    // TODO: Replace the following with your app's Firebase project configuration
    const firebaseConfig = {
      // ...
    };
    
    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);
    

Node.js アプリ

  1. Firebase JavaScript SDK をインストールします。

    1. package.json ファイルがない場合は、JavaScript プロジェクトのルートから次のコマンドを実行して作成します。

      npm init
    2. 次のコマンドを実行して firebase npm パッケージをインストールし、package.json ファイルに保存します。

      npm install --save firebase
  2. アプリで Firebase モジュールを使用するには、次のオプションのいずれかを使用します。

    • require を使用して、任意の JavaScript ファイルからモジュールを組み込む。

      特定の Firebase サービス(Authentication と Cloud Firestore など)のみを含める:

      // Firebase App (the core Firebase SDK) is always required and
      // must be listed before other Firebase SDKs
      var firebase = require("firebase/app");
      
      // Add the Firebase products that you want to use
      require("firebase/auth");
      require("firebase/firestore");
      


    • ES2015 を使用して、import でモジュールをインポートする。

      特定の Firebase サービス(Authentication と Cloud Firestore など)のみを含める:

      // Firebase App (the core Firebase SDK) is always required and
      // must be listed before other Firebase SDKs
      import * as firebase from "firebase/app";
      
      // Add the Firebase services that you want to use
      import "firebase/auth";
      import "firebase/firestore";
      
  3. アプリで Firebase を初期化します。

    // TODO: Replace the following with your app's Firebase project configuration
    var firebaseConfig = {
      // ...
    };
    
    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);
    

Firebase 構成オブジェクト

アプリで Firebase を初期化するには、アプリの Firebase プロジェクト構成を提供する必要があります。

予約済みの Hosting URL を使用する場合、Firebase の構成はプロジェクトから自動的に取得されるため、コードでオブジェクトを暗黙的に提供する必要はありません。

var firebaseConfig = {
  apiKey: "api-key",
  authDomain: "project-id.firebaseapp.com",
  databaseURL: "https://project-id.firebaseio.com",
  projectId: "project-id",
  storageBucket: "project-id.appspot.com",
  messagingSenderId: "sender-id",
  appID: "app-id",
};

Firebase 構成オブジェクトはいつでも入手できます

ステップ 4:(省略可)CLI をインストールし、Firebase Hosting にデプロイする

Firebase ウェブアプリを Firebase Hosting サイトにリンクしている場合、サイトのコンテンツと構成を今(ウェブアプリの設定時)、または後からいつでもデプロイできます。

  1. Firebase にデプロイするには、コマンドライン ツールである Firebase CLI を使用します。CLI の最新バージョンをインストールまたは更新します。

    パソコンの任意の場所から次の npm コマンドを実行します。

    npm install -g firebase-tools
  2. Google にログインします。次のコマンドを実行します。

    firebase login

    このコマンドにより、ローカルマシンが Firebase に接続し、Firebase プロジェクトへのアクセスが許可されます。

  3. Firebase プロジェクトを初期化します。ローカルアプリ ディレクトリのルートから次のコマンドを実行します。

    firebase init

    この初期化コマンドは以下を行います。

    • ローカルアプリ ディレクトリを Firebase にリンクします。
    • firebase.json ファイル(Firebase Hosting に必要なファイル)を生成します。
    • 公開静的ファイル(HTML、CSS、JS など)を含む公開ルート ディレクトリを指定するよう求めます。

      Firebase が検索するディレクトリのデフォルト名は「public」です。firebase.json ファイルを直接編集することで、公開ディレクトリを設定することもできます。

  4. コンテンツと Hosting 構成を Firebase Hosting にデプロイします。

    デフォルトの Hosting サイト

    デフォルトでは、Firebase プロジェクトはすべて、web.app ドメインと firebaseapp.com ドメイン(project-id.web.app および project-id.firebaseapp.com)に無料のサブドメインがあります。

    1. サイトにデプロイします。アプリのルート ディレクトリから次のコマンドを実行します。

      firebase deploy
    2. いずれかのデフォルト サイトで自身のサイトを表示します。

      • project-id.web.app
      • project-id.firebaseapp.com

    デフォルト以外の Hosting サイト

    Firebase プロジェクトは複数のサイトをサポートしています(これらはデフォルト以外のサイトと見なされます)。コンソールのウェブアプリの設定ワークフロー中、またはコンソールの Hosting ページから、プロジェクトにサイトを追加できます。

    1. サイトを firebase.json ファイルfirebase init の実行中に作成されたもの)に追加します。

      この firebase.json 構成では、サイトごとに個別のリポジトリがあることを前提としていることに注意してください。

      {
        "hosting": {
          "site": "site-name>",
          "public": "public",
      
          // ...
        }
      }
      
    2. サイトにデプロイします。アプリのルート ディレクトリから次のコマンドを実行します。

      firebase deploy --only hosting:site-name
    3. 次のいずれかでサイトを表示します。

      • site-name.web.app
      • site-name.firebaseapp.com

ステップ 5: アプリで Firebase にアクセスする

Firebase JavaScript SDK は、次の Firebase プロダクトをサポートしています。各プロダクトはオプションで、firebase 名前空間からアクセスできます。

使用可能なメソッドについては、Firebase JavaScript のリファレンス ドキュメントをご覧ください。

Firebase プロダクト 名前空間 ウェブ Node.js
Authentication firebase.auth()
Cloud Firestore firebase.firestore()
Cloud Functions for Firebase Client SDK firebase.functions()
Cloud Messaging firebase.messaging()
Cloud Storage firebase.storage()
Performance Monitoring (ベータ版リリース) firebase.performance()
Realtime Database firebase.database()

使用可能なライブラリ

その他の設定オプション

Firebase SDK の読み込みを遅らせる(CDN から)

ページ全体が読み込まれるまで、Firebase SDK の登録を遅らせることができます。

  1. Firebase SDK の各 script タグに defer フラグを追加して、2 番目のスクリプトを使用して Firebase の初期化を遅らせます。

    <script defer src="https://www.gstatic.com/firebasejs/6.2.0/firebase-app.js"></script>
    
    <script defer src="https://www.gstatic.com/firebasejs/6.2.0/firebase-auth.js"></script>
    <script defer src="https://www.gstatic.com/firebasejs/6.2.0/firebase-firestore.js"></script>
    
    // ...
    
    <script defer src="./init-firebase.js"></script>
    
  2. init-firebase.js ファイルを作成して、次のコンテンツを含めます。

    // TODO: Replace the following with your app's Firebase project configuration
    var firebaseConfig = {
      // ...
    };
    
    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);
    

1 つのアプリで複数の Firebase プロジェクトを使用する

ほとんどの場合、Firebase の初期化は単一のデフォルト アプリで行うだけで済みます。このアプリからは 2 つの方法で Firebase にアクセスできます(この 2 つの方法は同等です)。

// Initialize Firebase with a "default" Firebase project
var defaultProject = firebase.initializeApp(firebaseConfig);

console.log(defaultProject.name);  // "[DEFAULT]"

// Option 1: Access Firebase services via the defaultProject variable
var defaultStorage = defaultProject.storage();
var defaultFirestore = defaultProject.firestore();

// Option 2: Access Firebase services using shorthand notation
defaultStorage = firebase.storage();
defaultFirestore = firebase.firestore();

ただし、複数の Firebase プロジェクトに同時にアクセスしなければならない場合もあります。たとえば、ある Firebase プロジェクトのデータベースからデータを読み取り、別の Firebase プロジェクトにファイルを保存することがあります。また、1 つのプロジェクトで認証を行い、もう 1 つのプロジェクトで認証を解除する場合もあります。

Firebase JavaScript SDK を使用すると、プロジェクトごとに独自の Firebase 構成情報を使用し、1 つのアプリで同時に複数の Firebase プロジェクトを初期化して使用できます。

// Initialize Firebase with a default Firebase project
firebase.initializeApp(firebaseConfig);

// Initialize Firebase with a second Firebase project
var otherProject = firebase.initializeApp(otherProjectFirebaseConfig, "other");

console.log(firebase.app().name);  // "[DEFAULT]"
console.log(otherProject.name);    // "otherProject"

// Use the shorthand notation to access the default project's Firebase services
var defaultStorage = firebase.storage();
var defaultFirestore = firebase.firestore();

// Use the otherProject variable to access the second project's Firebase services
var otherStorage = otherProject.storage();
var otherFirestore = otherProject.firestore();

開発用のローカル ウェブサーバーを実行する

ウェブアプリを作成する場合、Firebase JavaScript SDK の一部では、ウェブアプリがローカル ファイル システムではなく、サーバーから提供されている必要があります。Firebase CLI を使用してローカル サーバーを実行できます。

アプリに Firebase Hosting をすでに設定している場合は、以下の手順の一部をすでに完了させている場合があります。

  1. Firebase CLI をインストールまたは更新します。パソコンの任意の場所から次の npm コマンドを実行します。

    npm install -g firebase-tools
  2. Google にログインします。次のコマンドを実行します。

    firebase login

    このコマンドにより、ローカルマシンが Firebase に接続し、Firebase プロジェクトへのアクセスが許可されます。

  3. Firebase プロジェクトを初期化します。ローカルアプリ ディレクトリのルートから次のコマンドを実行します。

    firebase init

    この初期化コマンドは以下を行います。

    • ローカルアプリ ディレクトリを Firebase にリンクします。
    • firebase.json ファイル(Firebase Hosting に必要なファイル)を生成します。
    • 公開静的ファイル(HTML、CSS、JS など)を含む公開ルート ディレクトリを指定するよう求めます。

      Firebase が検索するディレクトリのデフォルト名は「public」です。firebase.json ファイルを直接編集することで、公開ディレクトリを設定することもできます。

  4. 開発用のローカル サーバーを起動します。ローカルアプリ ディレクトリのルートから次のコマンドを実行します。

    firebase serve

次のステップ

以下で Firebase の詳細を確認します。

Firebase サービスをアプリに追加します。