Google は、黒人コミュニティのための人種的公平の促進に取り組んでいます。詳細をご覧ください。

Firebase Local Emulator Suite の概要

Firebase Local Emulator Suite は、Cloud Firestore、Realtime Database、Cloud Functions、Cloud Pub/Sub、Firebase Hosting を使用してアプリをローカルでビルドおよびテストするデベロッパー向けの高度なツールセットです。Local Emulator Suite を使用したローカル開発は、プロトタイピング、開発、継続的インテグレーションのワークフローに適しています。

Firebase Local Emulator Suite を開発ワークフローに追加する。

始める前に

Firebase Local Emulator Suite を使用する前に、Firebase プロダクトと Firebase の開発モデルに慣れておくことをおすすめします。

  • ご使用のプラットフォームとプロダクト(iOSAndroidウェブ)向けの Firebase スタートガイドをお読みください。
  • 選択したプラットフォームですぐに実行できるクイックスタート アプリをダウンロードし、コードを確認して実行します。FriendlyEats クイックスタート アプリ(iOSAndroidウェブ)をおすすめします。

Firebase Local Emulator Suite とは

Firebase Local Emulator Suite は、Firebase サービスの動作を正確に再現するようにビルドされた個々のサービス エミュレータで構成されています。つまり、本番環境のデータに影響を与えることなく、アプリをこれらのエミュレータに直接接続して統合テストや QA を実行できます。

たとえば、アプリを Firestore エミュレータに接続して、テスト中にドキュメントを安全に読み書きできます。これらの書き込みにより、Cloud Functions エミュレータで関数がトリガーされることがあります。ただし、エミュレータが利用できない場合や構成されていない場合でも、アプリは引き続き本番環境の Firebase サービスと通信します。

ローカル ワークフローでの Emulator Suite

プロトタイプとテストのワークフローでは、次の 3 つの方法で Local Emulator Suite を使用できます。

  • 単体テスト: Firebase Test SDK を使用すると、mocha テストランナーを使用して Node.js で単体テストを作成できます。Test SDK には、セキュリティ ルールの読み込み、テスト間のローカル データベースのフラッシュ、エミュレータとの同期インタラクションの管理を行うための便利なメソッドがいくつか用意されています。アプリのロジックに依存しないデータベース インタラクションの簡単なテストを作成する場合に最適です。
  • 統合テスト: Emulator Suite 内の各プロダクト エミュレータは、本番環境の Firebase サービスと同じように、SDK 呼び出しと REST API 呼び出しに応答します。そのため、独自のテストツールを使用して、Local Emulator Suite をバックエンドとして使用する自己完結型の統合テストを作成できます。
  • 手動テスト: 実行中のアプリケーションを Local Emulator Suite に接続して、Firebase アプリを手動でテストできます。本番環境データは危険にさられることなく、テスト プロジェクトの構成は不要です。

サポートされている Firebase の機能とプラットフォーム

Firebase Local Emulator Suite を使用すると、相互運用可能な方法で Google のコアプロダクトでコードをテストできます。Cloud Functions エミュレータは、Cloud Firestore、Realtime Database、Cloud Pub/Sub によってトリガーされる HTTP 関数、呼び出し可能関数、バックグラウンド関数をサポートします。Cloud Functions エミュレータは、Auth または Cloud Storage for Firebase によってトリガーされるバックグラウンド関数をサポートしていません。Cloud Firestore と Realtime Database のエミュレータには、セキュリティ ルールのエミュレータが組み込まれています。

Cloud
Firestore
Realtime
Database
Cloud
Functions
Cloud
Pub/Sub
Android SDK なし
iOS SDK なし
Web SDK なし
Node.js Admin SDK なし

プロトタイピングとテスト用のその他のツール

Emulator Suite には、他のプロトタイプやテストツールが追加されています。

Cloud Functions テストツール。Firebase CLI 環境では、関数をプロトタイプ化してテストするためのいくつかの方法が用意されています。

  • Emulator Suite の一部である Cloud Functions エミュレータ。このエミュレータは、Firestore エミュレータや Realtime Database エミュレータのローカル、ライブデータ、セキュリティ ルールと相互運用できます。
  • Cloud Functions シェル。対話型の反復型関数のプロトタイピングと開発を可能にします。シェルは、開発用に REPL スタイルのインターフェースを備えた Cloud Functions エミュレータを使用します。Firestore または Realtime Database エミュレータとの統合は提供されていません。シェルを使用してデータをモックし、Emulator Suite が現在サポートしていないサービス(Storage、PubSub、アナリティクス、Remote Config、Storage、Auth、Crashlytics)とのやり取りをシミュレートする関数呼び出しを実行します。
  • Cloud Functions 用の Firebase Test SDK (関数開発用の Mocha フレームワークを備えた Node.js)。実際、Cloud Functions Test SDK は Cloud Functions シェルの上に自動化機能を提供します。

Cloud Functions シェルと Cloud Functions Test SDK の詳細については、関数をインタラクティブにテストするCloud Functions の単体テストをご覧ください。

セキュリティ ルールのテストツール。Emulator Suite は、セキュリティ ルールのテストに推奨されるツールセットですが、以下を使用することもできます。

  • Firebase コンソールの一部であるルール プレイグラウンド。ルール プレイグラウンドを使用すると、セキュリティ ルールの設計を簡単に始めることができます。詳細については、Firebase セキュリティ ルールのすばやい検証をご覧ください。