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 开发模型:
- 请参阅适用于您的平台和产品(Apple、Android 或 Web)的 Firebase 使用入门主题。
- 在您选择的平台中下载可随时运行的快速入门应用,然后仔细查看并执行代码。FriendlyEats 快速入门应用是一个不错的选择(iOS、Android 或 Web)。
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 Security Rules 模拟功能。
Cloud Firestore |
Realtime Database |
Cloud Storage for Firebase |
Authentication | Cloud Functions |
Cloud Pub/Sub |
扩展程序 | |
---|---|---|---|---|---|---|---|
Android SDK | 不适用 | 不适用 | |||||
iOS SDK | 不适用 | 不适用 | |||||
Web SDK | 不适用 | 不适用 | |||||
Node.js Admin SDK | 不适用 | 不适用 |
后续步骤
开始学习 Local Emulator Suite 演示,其中介绍了如何对数据库和 Cloud Functions 进行离线原型设计。
其他原型设计和测试工具
其他原型设计和测试工具可作为 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 安全规则。