Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Firebase Local Emulator Suite 简介

Firebase Local Emulator Suite 是一套高级工具,适用于希望使用 Cloud Firestore、Realtime Database、Cloud Storage、Authentication、Cloud Functions、Pub/Sub 和 Firebase Hosting 在本地构建和测试应用的开发者。它提供了一个功能丰富的界面,可帮助您快速运行应用和进行原型设计。

使用 Local Emulator Suite 进行本地开发的做法非常适合原型设计、开发和持续集成工作流。

将 Firebase Local Emulator Suite 添加到您的开发工作流。

准备工作

在探索 Firebase Local Emulator Suite 之前,我们建议您先熟悉 Firebase 产品和 Firebase 开发模型:

  • 请参阅适用于您的平台和产品(iOSAndroidWeb)的 Firebase 使用入门主题。
  • 在您选择的平台中下载可随时运行的快速入门应用,然后仔细阅读并执行代码。FriendlyEats 快速入门应用是一个不错的选择(iOSAndroidWeb)。

什么是 Firebase Local Emulator Suite?

Firebase Local Emulator Suite 由各个服务模拟器组成,旨在准确模拟 Firebase 服务的行为。这表示,您可以直接将应用与这些模拟器关联,以执行集成测试或质量检查,而无需接触生产数据。

例如,您可以将应用连接到 Cloud Firestore 模拟器,以便在测试时安全地读取和写入文档。这些写入操作可能会触发 Cloud Functions 模拟器中的函数。但是,当模拟器不可用或未配置时,您的应用仍将继续与生产 Firebase 服务进行通信。

在本地工作流中使用 Emulator Suite

您的原型设计和测试工作流可以通过以下三种方式使用 Local Emulator Suite:

  • 单元测试:借助 Firebase Test SDK,您可以使用 Mocha 测试运行程序在 Node.js 中编写单元测试。Test SDK 提供了多种便捷方法来加载安全规则、在测试之间刷新本地数据库,以及管理与模拟器之间的同步交互。它非常适合为不依赖于应用逻辑的数据库交互编写简单的测试。
  • 集成测试:在 Emulator Suite 中,每个产品模拟器都会响应 SDK 和 REST API 调用,就像正式版 Firebase 服务一样。因此,您可以使用自己的测试工具编写将 Local Emulator Suite 用作后端的独立集成测试。
  • 手动测试:您可以将正在运行的应用连接到 Local Emulator Suite 以便手动测试 Firebase 应用,而不会对生产数据造成风险,也无需配置测试项目。

哪些 Firebase 功能和平台受支持?

借助 Firebase Local Emulator Suite,您能够以可互操作的方式使用我们的核心产品来测试代码。Cloud Functions 模拟器支持由 Cloud Firestore、Realtime Database、Authentication 和 Pub/Sub 触发的 HTTP 函数、Callable 函数和后台函数;Cloud Functions 模拟器不支持由 Cloud Storage for Firebase 触发的后台函数。对于 Cloud Firestore 和 Realtime Database 模拟器,系统已内置安全规则模拟。

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

后续步骤

其他原型设计和测试工具

其他原型设计和测试工具可作为 Emulator Suite 的补充。

Cloud Functions 测试工具。Firebase CLI 环境为您提供了多种对函数进行原型设计和测试的方法:

  • Cloud Functions 模拟器,Emulator Suite 的一部分。此模拟器可与 Firestore 模拟器和/或实时数据库模拟器中的本地实时数据和安全规则进行互操作。
  • Cloud Functions shell,允许对交互式迭代函数进行原型设计和开发。此 shell 采用带有 REPL 样式界面的 Cloud Functions 模拟器进行开发。未提供与 Cloud Firestore 或 Realtime Database 模拟器的集成。借助 shell,您可以模拟数据并执行函数调用,从而模拟与 Local Emulator Suite 目前不支持的产品(如 Cloud Storage、Pub/Sub、Analytics、Remote Config、Storage、Auth 和 Crashlytics)之间的交互方式。
  • Firebase Test SDK for Cloud Functions,一种使用 Mocha 框架进行函数开发的 Node.js 环境。事实上,Cloud Functions Test SDK 在 Cloud Functions shell 上提供了自动化功能。

如需详细了解 Cloud Functions shell 和 Cloud Functions Test SDK,请参阅以交互方式测试函数Cloud Functions 单元测试

安全规则测试工具。Emulator Suite 是用于测试安全规则的首选工具集。但是,您还可以使用:

  • 规则测试平台(Firebase 控制台的一部分)。规则测试平台为安全规则设计提供了良好的交互式入门体验。如需了解详情,请参阅快速验证 Firebase 安全规则