Logo
Section 1 / 6

云函数入门

快速了解 Firebase 的 Cloud Functions。

导入

云函数入门

快速了解 Firebase 的 Cloud Functions。

Cloud Functions for Firebase 是 Google Cloud 的一项产品,可让我们在响应由其他 Firebase 服务或 HTTPS 请求触发的事件时自动运行后端代码。通过 Cloud Functions,我们可以轻松运行服务器端代码,而无需设置服务器。这些服务器端代码的一些可能示例包括为用户添加角色、响应数据库中的变化,或在发生某些有趣事件(例如用户注册时发送欢迎邮件)时通知用户。这些事件通常不适合在客户端运行,因此是 Cloud Functions 的理想应用场景。借助 Admin SDK,我们可以通过 Cloud Functions 在可信环境中无缝与其它 Firebase 服务进行交互。例如,当用户注册时,我们可以在 Cloud Firestore 的 users 集合中创建一个新文档。

工作原理

Cloud Functions for Firebase 使用 Node.js 环境编写,支持 JavaScript 或 TypeScript。成功编写函数后,所有函数都必须部署到 Cloud Functions 运行时才能使用。部署函数时,Firebase CLI 会将与该函数相关的所有代码打包,并将每个函数放入独立的容器中,根据 Google 服务器的要求进行转换。这使得 Google 服务器能够管理这些函数。

Cloud Functions 可以通过 HTTP 请求直接触发,也可以响应事件触发。当发生这种情况时,Cloud Functions 会在云端启动一个服务器实例来激活并运行该函数。Cloud Functions 会监控该函数,并确保创建的实例保持活跃状态,直到其 Promise 解析。随着我们应用程序的使用量增加或减少,Google 会自动调整所需运行这些函数的服务器实例数量。

注意: Firebase 项目必须启用计费才能部署 Cloud Function。这意味着所有项目都必须处于 Blaze 计划 才能使用 Cloud Functions。不过,Firebase 提供了慷慨的免费层级,每月最多支持两百万次函数调用。因此,像我们这样的简单测试应用很可能无需担心超出此限制。更多详情请访问 Firebase 官网。

要为项目启用计费,请执行以下步骤:

  1. 转到 Firebase 项目仪表板。
  2. 点击“Spark 计划”按钮以显示计费计划。
  3. 在“Blaze”计划部分点击“选择计划”按钮。
  4. 接下来,在提供的字段中输入一个数值,为项目设置计费预算。这将使 Firebase 在项目费用接近或超过此金额时向项目管理员发出警报。

实现

初始化 Cloud Functions 的步骤与其他我们之前看到的 Firebase 服务略有不同。要初始化用于 Cloud Functions 的 Firebase SDK,我们必须使用 Firebase CLI,这一点我们已经在深入介绍中详细讨论过。开始操作前,请执行以下步骤:

  1. 在下方的终端小部件 中运行以下命令。
1firebase init functions
  1. 接下来,我们需要选择一个要部署函数的 Firebase 项目。按“Enter”键以使用现有项目。然后,选择与您正在使用的配置值相关联的 Firebase 项目。
  2. 接着,我们需要选择编写 Cloud Functions 的首选语言。选择 JavaScript 并按“Enter”。
  3. 按“Y”键,再按“Enter”键以启用 ESLint 来帮助发现错误。
  4. 覆盖对话框要求覆盖的现有文件。
  5. 按“Y”键,再按“Enter”键,使用 npm 安装依赖项。

注意: 执行此操作将在我们的 Firebase 项目中启用 Cloud Functions,同时还会在编辑器中创建一些文件和模块——firebase-functions 和 firebase-admin。这些模块有助于我们成功编写和部署函数。始终建议将这些包更新到最新版本,以获取最新功能。

启用 Cloud Functions

现在,让我们在 Firebase 项目中启用 Cloud Functions。

Terminal

操作步骤

  • 运行命令以在 Firebase 项目中初始化函数。
  • 按照上文所述的步骤,在您的项目中初始化 Cloud Functions。

注意: 别忘了在身份验证令牌旁包含 --token 标志。

Firebase CLI

开始使用 Cloud Functions