本文概述
- Cloud Firestore触发器
- 实时数据库触发器
- 身份验证触发器
- 云存储触发器
- HTTP触发器
- 远程配置触发器
- 分析触发
- Crashlytics触发器
- 发布/订阅触发器
- 测试实验室触发器
文章图片
Cloud Firestore触发器 用于Firebase SDK的Cloud Functions导出一个function.firestore对象, 该对象使我们能够创建与特定Cloud Firestore事件相关联的处理程序。需要注意的一件事是, Cloud Firestore事件将仅在文档更改时触发。无法将事件添加到特定字段。
S.No | 事件类型 | 触发 |
---|---|---|
1. | onCreate | 首次写入文档时触发。 |
2. | onUpdate | 当文档已经存在并且具有任何值更改时, 将触发该事件。 |
3. | onDelete | 当使用数据删除文档时触发。 |
4. | onWrite | 触发onCreate, onDelete或onUpdate时触发。 |
使用花括号, 也可以将路径的这部分定义为通配符。
functions.database.ref('/profiles/{userID}')
S.No | 事件类型 | 触发 |
---|---|---|
1. | onWrite() | 创建, 更改或销毁数据时将激活它。 |
2. | onCreate() | 创建新数据时将激活它。 |
3. | onUpdate() | 数据更新时激活。 |
4. | onDelete() | 删除数据后激活。 |
在以下情况下, 将激活身份验证触发器:
- 用户创建电子邮件帐户和密码时。
- 用户在联合身份提供者的帮助下首次登录时。
- 当开发人员使用Firebase Admin SDK创建帐户时。
- 用户首次登录新的匿名身份验证会话。
云存储触发器 我们可以触发功能来响应Cloud Storage中文件和文件夹的更新, 上传和删除。要注册事件处理程序函数, 我们必须通过以下方式使用function.storage对象:
exports.storageChanges = functions.storage.object().onChange(event =>
{...});
【Firebase触发器】在上面的代码行中, 我们正在为默认存储桶上的所有对象更改注册事件处理程序。如果要指定特定的存储桶, 则还必须添加对桶函数的调用:
exports.storageChanges = functions.storage.bucket('bucketName').object().onChange(event =>
{...});
在事件处理函数中, 我们可以利用各种存储属性:
S.No | 属性 | 描述 |
---|---|---|
1. | event.data | 存储对象。 |
2. | event.data.bucket | 包含文件的存储桶。 |
3. | event.data.name | 存储桶中文件的路径。 |
4. | event.data.contentType | 文件内容类型。 |
5. | event.data.resourceState | 存在或不存在。如果已删除文件/文件夹, 则设置not_exists值。 |
6. | event.data.metageneration | 是没有生成文件元数据的次数, 对于新对象, 初始值为1。 |
exports.httpTest = functions.https.onRequest((req, res) =>
{...});
远程配置触发器 为了响应Firebase远程配置事件, 我们可以触发功能, 包括发布新的配置版本或回滚到旧版本。为了触发远程配置功能, 我们使用由function.remoteConfig提供的onUpdate处理程序。
onUpdate返回TemplateVersion对象, 该对象包含模板更新的关键元数据字段, 例如更新的时间和版本号。我们还可以检索进行更新的用户的电子邮件, 其中包含图像和名称(如果有)。
分析触发 通过使用Firebase的Google Analytics(分析), 我们可以详细了解用户如何与我们的Android应用和iOS应用进行交互。 Analytics API公开了各种事件。类型转换事件可用于注册云功能, 如下所示:
exports.onPurchase = functions.analytics.event('in_app_purchase').onLog(event =>
{...});
Crashlytics触发器 为了响应Crashlytics问题事件(包括新问题, 速度警报和退化问题), 我们可以触发功能。
为了触发Crashlytics函数, 我们使用function.crashlytics.issue()生成一个IssueBuilder, 然后, 我们调用构建器的适当问题生成函数。
S.No | 功能 | 描述 |
---|---|---|
1. | onNew() | 当我们的应用程序首次遇到问题时, 将触发此事件。 Exports.sendOnNewIssue = functions.crashlytics.issue()。onNew(async(issue)=> { // … }); |
2. | onRegressed() | 当问题在Crashlytics中关闭后再次发生时, 将触发该事件。 exports.sendOnRegressedIssue = functions.crashlytics.issue()。onRegressed(异步(issue)=> { // … }); |
3. | onVelocityAlert() | 在给定的构建崩溃中, 如果统计上有大量会话, 则将触发该事件。 exports.sendOnVelocityAlert = functions.crashlytics.issue()。onVelocityAlert(异步(issue)=> { // … }); |
当新的发布/订阅消息发送到特定主题时, 我们可以触发功能。我们必须指定发布/订阅主题名称来触发我们的函数, 并在onPublish()事件处理程序中设置事件。
exports.helloPubSub = functions.pubsub.topic('topic-name').onPublish((message) =>
{// ...});
测试实验室触发器 我们可以响应Firebase测试实验室中测试矩阵的完成而触发功能。为了创建一个新的函数, 该函数在事件处理函数function.testLab.testMatrix()。onComplete()完成时触发:
exports.sendEmailNotification = functions.testLab.testMatrix().onComplete((testMatrix) =>
{// ...});
推荐阅读
- Firebase云功能
- Firebase托管
- Firebase在云端存储中上传文件
- 从Cloud Storage下载文件
- Firebase在云存储中创建引用
- Firebase云存储设置和配置
- Firebase(云存储)
- 在Firestore中更新和删除
- 在Firestore中读写