通过 Cloud Functions,开发者能够访问 Firebase 和 Google Cloud 事件,并利用可伸缩的计算力来运行代码以响应这些事件。虽然每款 Firebase 应用都应该以独特的方式使用 Cloud Functions 以满足其独特的需求,不过典型的用例大致可分为以下几类:
请查看您感兴趣的每个类别的使用场景和示例,然后查看使用入门教程或者身份验证事件、分析事件及其他事件的具体使用指南。
当发生值得注意的事情时通知用户
开发者可以使用 Cloud Functions 让用户了解并获取最新的应用相关信息。例如,假设有一款让用户可以在应用中关注彼此活动的应用。每当有用户关注另一用户,Realtime Database 数据库中会出现一次写入。然后,此写入事件可以触发一个函数来创建 Firebase Cloud Messaging (FCM) 通知,告知相应用户已获得新的关注者。
- 对存储关注者信息的 Realtime Database 路径进行写入操作时,函数即会触发。
- 函数撰写要通过 FCM 发送的消息。
- FCM 将通知消息发送到用户的设备。
如需查看可正常工作的代码,请参阅 GitHub 中的示例代码:
- Node.js:fcm-notifications
- Python:fcm-notifications
其他值得注意的通知场景
- 向订阅简报的用户发送确认电子邮件。
- 在用户完成注册后向其发送欢迎电子邮件。
- 用户创建新账号时发送短信确认。
执行数据库清理和维护
利用 Cloud Functions 数据库事件处理,您可以根据用户行为修改 Realtime Database 或 Cloud Firestore,使系统保持所需状态。例如,您可以监控写入事件,并更改用户消息中的特定字符串的格式(例如,更改为全大写)。工作原理如下:
- 函数的数据库事件处理程序会监听特定路径上的写入事件,并检索包含消息文本的事件数据。
- 函数会处理相应文本,将字符串更改为大写。
- 函数将更新后的文本写回数据库。
如需查看可正常工作的代码,请参阅 GitHub 中的示例代码:
- Node.js:uppercase-rtdb
- Python:uppercase-rtdb
其他数据库清理和维护用例
- 从 Realtime Database 中清除已删除用户的内容。
- 限制 Firebase 数据库中的子节点数量。
- 跟踪 Realtime Database 列表中的元素数量。
- 将数据从 Realtime Database 复制到 Google Cloud BigQuery。
- 将文本转换为表情符号。
- 管理数据库记录的计算得出的元数据。
在云端而不是在应用中执行密集型任务
您可以利用 Cloud Functions 将资源密集型工作(需要使用大量 CPU 或网络资源)分流到 Google Cloud 进行处理,而不是在用户设备上运行,从而提高应用的响应速度。例如,您可以编写一个函数来监听将图像上传到 Cloud Storage 的事件,将图像下载到运行该函数的实例,进行修改并将其上传回 Cloud Storage 中。修改操作可以包括使用 sharp 或 Pillow 等工具调整图像大小、剪裁或转换图像。
- 函数在图像文件上传到 Cloud Storage 时触发。
- 由函数下载图像并创建其缩略图版本。
- 函数将缩略图位置写入数据库,便于客户端应用查找和使用。
- 函数将缩略图上传回 Cloud Storage 中的新位置。
- 由应用下载缩略图链接。
如需查看图像处理示例的演示,请参阅处理 Cloud Storage 事件指南。
其他 Firebase 云端批量作业示例
- 定期删除未使用的 Firebase 账号 Node.js | Python。
- 自动备份上传的图像 Node.js | Python。
- 向用户发送批量电子邮件。
- 定期汇总数据。
- 处理尚未完成的工作队列。
与第三方服务和 API 集成
Cloud Functions 可以通过调用和提供网络 API 来帮助您的应用更好地与其他服务配合工作。例如,一款开发协作应用可以将 GitHub 提交发布到工作组聊天室。
- 一个用户向一个 GitHub 代码库推送提交。
- HTTPS 函数通过 GitHub webhook API 触发。
- 函数向团队 Slack 频道发送提交通知。
其他与第三方服务和 API 集成的方式
- 使用 Google Cloud Vision API 分析和标记上传的图像。
- 使用 Google 翻译来翻译消息。
- 使用自定义身份验证让用户登录。
- 在写入 Realtime Database 时向 webhook 发送请求。
- 启用对 Realtime Database 元素的全文搜索。
- 处理用户付款。
- 创建电话和短信自动回复。
- 使用 Google 助理创建聊天机器人。