个性化阅读
专注于IT技术分析

Firebase触发器

本文概述

我们编写的功能可以响应Firebase和称为触发器的Google Cloud功能生成的事件。在开发我们的第一个Cloud Function之前, 我们将探讨可用于Cloud Function的最常见触发器。有以下触发器:

Firebase触发器

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时触发。

实时数据库触发器

通过使用实时数据库触发器, 我们可以响应Firebase实时数据库中的更改。为此, 我们必须在特定的数据库路径function.database.ref(’/ foo / bar’)上注册事件。我们要注册的数据库路径作为参数传递。

使用花括号, 也可以将路径的这部分定义为通配符。

functions.database.ref('/profiles/{userID}')
S.No 事件类型 触发
1. onWrite() 创建, 更改或销毁数据时将激活它。
2. onCreate() 创建新数据时将激活它。
3. onUpdate() 数据更新时激活。
4. onDelete() 删除数据后激活。

身份验证触发器

通过使用身份验证触发器, 我们可以响应通过Firebase身份验证创建和删除用户帐户而执行代码。 Exports.newUserCreated = functions.auth.user()。onCreate(event => {…})用于创建事件处理函数, 如果创建了新用户, 该函数将执行。

在以下情况下, 将激活身份验证触发器:

  1. 用户创建电子邮件帐户和密码时。
  2. 用户在联合身份提供者的帮助下首次登录时。
  3. 当开发人员使用Firebase Admin SDK创建帐户时。
  4. 用户首次登录新的匿名身份验证会话。

如果用户首次使用自定义令牌登录, 则不会触发Cloud Functions事件。

云存储触发器

我们可以触发功能来响应Cloud Storage中文件和文件夹的更新, 上传和删除。要注册事件处理程序函数, 我们必须通过以下方式使用function.storage对象:

exports.storageChanges = functions.storage.object().onChange(event => {...});

在上面的代码行中, 我们正在为默认存储桶上的所有对象更改注册事件处理程序。如果要指定特定的存储桶, 则还必须添加对桶函数的调用:

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。

HTTP触发器

HTTP触发器可与Firebase Cloud Function一起使用。这些触发器是通过HTTP请求调用的, 并通过以下方式使用functions.https注册的:

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)=> {   // … });

发布/订阅触发器

Google Cloud Pub / Sub是一种全球分布的消息总线, 可根据需要自动缩放。我们可以使用functions.pubsub创建一个处理Google Cloud Pub / Sub事件的函数。

当新的发布/订阅消息发送到特定主题时, 我们可以触发功能。我们必须指定发布/订阅主题名称来触发我们的函数, 并在onPublish()事件处理程序中设置事件。

exports.helloPubSub = functions.pubsub.topic('topic-name').onPublish((message) => {
  // ...
});

测试实验室触发器

我们可以响应Firebase测试实验室中测试矩阵的完成而触发功能。为了创建一个新的函数, 该函数在事件处理函数function.testLab.testMatrix()。onComplete()完成时触发:

exports.sendEmailNotification = functions.testLab.testMatrix().onComplete((testMatrix) => {
  // ...
});

赞(0)
未经允许不得转载:srcmini » Firebase触发器

评论 抢沙发

评论前必须登录!