云函数入门
快速了解 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 官网。
要为项目启用计费,请执行以下步骤:
- 转到 Firebase 项目仪表板。
- 点击“Spark 计划”按钮以显示计费计划。
- 在“Blaze”计划部分点击“选择计划”按钮。
- 接下来,在提供的字段中输入一个数值,为项目设置计费预算。这将使 Firebase 在项目费用接近或超过此金额时向项目管理员发出警报。
实现
初始化 Cloud Functions 的步骤与其他我们之前看到的 Firebase 服务略有不同。要初始化用于 Cloud Functions 的 Firebase SDK,我们必须使用 Firebase CLI,这一点我们已经在深入介绍中详细讨论过。开始操作前,请执行以下步骤:
- 在下方的终端小部件 中运行以下命令。
1firebase init functions
- 接下来,我们需要选择一个要部署函数的 Firebase 项目。按“Enter”键以使用现有项目。然后,选择与您正在使用的配置值相关联的 Firebase 项目。
- 接着,我们需要选择编写 Cloud Functions 的首选语言。选择 JavaScript 并按“Enter”。
- 按“Y”键,再按“Enter”键以启用 ESLint 来帮助发现错误。
- 覆盖对话框要求覆盖的现有文件。
- 按“Y”键,再按“Enter”键,使用 npm 安装依赖项。
注意: 执行此操作将在我们的 Firebase 项目中启用 Cloud Functions,同时还会在编辑器中创建一些文件和模块——
firebase-functions和firebase-admin。这些模块有助于我们成功编写和部署函数。始终建议将这些包更新到最新版本,以获取最新功能。
启用 Cloud Functions
现在,让我们在 Firebase 项目中启用 Cloud Functions。