Firebase 本地模拟器套件简介

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

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

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

准备工作

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

  • 请参阅适用于您的平台和产品(AppleAndroidWeb)的 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 Extensions,更好地了解其功能,同时最大限度地减少结算费用。

支持哪些 Firebase 功能和平台?

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

Cloud
Firestore
Realtime
Database
Cloud
Storage
for Firebase
Authentication Cloud
Functions
Cloud
Pub/Sub
Extensions
Android SDK 不适用 不适用
iOS SDK 不适用 不适用
Web SDK 不适用 不适用
Node.js Admin SDK 不适用 不适用

后续步骤

其他原型设计和测试工具

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

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

  • Cloud Functions 模拟器,Emulator Suite 的一部分。此模拟器可与 Firestore 模拟器和/或 Realtime Database 模拟器中的本地实时数据和安全规则进行互操作。
  • Cloud Functions shell,用于对交互式迭代函数进行原型设计和开发。此 shell 采用带有 REPL 样式界面的 Cloud Functions 模拟器进行开发。未提供与 Cloud Firestore 或 Realtime Database 模拟器的集成。借助该 shell,您可以模拟数据并执行函数调用,从而模拟与 Local Emulator Suite 目前不支持的产品(如 Analytics、Remote Config 和 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 是用于测试安全规则的首选工具集。不过,您还可以使用:

  • Rules Playground(Firebase 控制台的一部分)。Rules Playground 在安全规则设计方面提供了非常好的交互式入门体验。如需了解详情,请参阅快速验证 Firebase 安全规则