使用 Cloud Functions 扩展 Firestore
借助 Cloud Functions,您可以部署 Node.js 代码来处理因 Firestore 数据库更改而触发的事件。这样您就可以轻松向您的应用中添加服务器端功能,而无需运行您自己的服务器。
如需用例的示例,请参阅 Cloud Functions 有哪些用途? 或 GitHub 代码库中的Functions 示例。
版本和模式要求
本文档适用于原生模式下的 Firestore 标准版。
Firestore 企业版不支持 Cloud Functions(第 1 代)。请改用 Cloud Run functions(第 2 代)。
Firestore 函数触发器
Cloud Functions for Firebase SDK 会导出 functions.firestore 对象,以便您创建与特定 Firestore 事件关联的处理程序。
| 事件类型 | 触发器 |
|---|---|
onCreate |
首次写入某个文档时触发。 |
onUpdate |
当某文档已存在并且其任何值发生了更改时触发。 |
onDelete |
当包含数据的文档被删除时触发。 |
onWrite |
在触发 onCreate、onUpdate 或 onDelete 时触发。 |
如果您还没有启用了 Cloud Functions for Firebase 的项目,请参阅《使用入门:编写和部署您的第一批函数》,配置并设置 Cloud Functions for Firebase 项目。
编写 Firestore 触发的函数
定义函数触发器
要定义 Firestore 触发器,请指定文档路径和事件类型:
Node.js
const functions = require('firebase-functions');
exports.myFunction = functions.firestore
.document('my-collection/{docId}')
.onWrite((change, context) => { /* ... */ });
指定单个文档
如果您希望针对特定文档的任何更改都触发一个事件,可以使用以下函数。