Accéder à la console

在本地运行函数

Firebase CLI 包含一个 Cloud Functions 函数模拟器,可以模拟以下函数类型:

  • HTTPS 函数
  • Callable 函数
  • Cloud Firestore 函数

您可以在本地运行函数,以便在部署到生产环境之前对其进行测试。

安装 Firebase CLI

要使用 Cloud Functions 模拟器,请先安装 Firebase CLI:

npm install -g firebase-tools

要使用本地模拟器,您的 Cloud Functions 必须依赖于以下产品:

  • firebase-admin 8.0.0 版本或更高版本。
  • firebase-functions 3.0.0 版本或更高版本。

设置管理员凭据(可选)

如果您希望自己的函数测试通过 Firebase Admin SDK 与 Google API 或其他 Firebase API 进行交互,则可能需要设置管理员凭据。

  • Cloud Firestore 和实时数据库触发器已经有足够的凭据,需要进行额外的设置。
  • 所有其他 API(包括身份验证和 FCM 等 Firebase API,或 Cloud Translation 和 Cloud Speech 等 Google API)都需要执行本部分中介绍的设置步骤。无论您使用的是函数 shell 还是 firebase serve,都需要遵循此要求。

为所模拟的函数设置管理员凭据:

  1. 打开 Google Cloud Console 中的服务帐号窗格
  2. 确保已选择 App Engine 默认服务帐号,并使用右侧的选项菜单选择创建密钥
  3. 出现提示时,选择 JSON 作为密钥类型,然后点击创建
  4. 将您的 Google 默认凭据设置为指向已下载的密钥:

    Unix

    $ export GOOGLE_APPLICATION_CREDENTIALS="path/to/key.json"
    
    $ firebase emulators:start
    

    Windows

    $ set GOOGLE_APPLICATION_CREDENTIALS=path\to\key.json
    
    $ firebase emulators:start
    

完成这些步骤之后,您的函数测试便可以使用 Admin SDK 访问 Firebase 和 Google API。例如,在测试身份验证触发器时,模拟的函数可以调用 admin.auth().getUserByEmail(email)

运行模拟器套件

要运行 Cloud Functions 模拟器,请使用 emulators:start 命令:

firebase emulators:start

根据您使用 firebase init 在本地项目中已初始化的产品,emulators:start 命令将启动用于 Cloud Functions、Cloud Firestore、实时数据库和 Firebase 托管等产品的模拟器。如果要启动特定的模拟器,请使用 --only 标志:

firebase emulators:start --only functions

如果要在模拟器启动后运行测试套件或测试脚本,请使用 emulators:exec 命令:

firebase emulators:exec "./my-test.sh"

与其他服务交互

模拟器套件包括多个模拟器,这些模拟器可以用来测试跨产品交互。

Cloud Firestore

如果您有一些使用 Firebase Admin SDK 将数据写入到 Cloud Firestore 的 Cloud Functions 函数,则这些写入操作将在 Cloud Firestore 模拟器运行时发送到该模拟器。如果这些写入操作触发了其他 Cloud Functions 函数,则这些函数将在 Cloud Functions 模拟器中运行。

Firebase 托管

如果您使用 Cloud Functions 为 Firebase 托管生成动态内容,则 firebase emulators:start 会将您的本地 HTTP 函数作为托管代理。

日志记录

模拟器会将日志从您的函数流式传输到运行这些函数的终端窗口。它会显示您的函数内的 console.log()console.info()console.error()console.warn() 语句的所有输出内容。

后续步骤

如需查看使用 Firebase 模拟器套件的完整示例,请参阅快速入门示例