firebaseFunctionを勉強しようと思った時にトリガーの一覧があったら使う時に便利かなと思って作る事にしました。
クライアントコードを更新することなく、可能なfirebaseの機能のイベントを処理できるとのことなので、
Functionが利用可能な機能とそのトリガーをまとめてみました
Cloud Firestore & Realtime Database のトリガー
イベントタイプ | トリガーの説明 |
---|---|
onCreate | CloudFirestoreにドキュメントが新規に書き込まれた時に送信 |
onUpdate | CloudFirestoreにすでに作成されているドキュメントが変更された時に送信 |
onDelete | CloudFirestoreに作成されているデータを含むドキュメントが削除された時に送信 |
onWrite | 上記の onCreate onUpdate onDelete のどれかがトリガーされた時に送信 |
Firebase RemoteConfig のトリガー
RemoteConfigでトリガーを使う場合はfunctions.remoteConfigのonUpdateを使う必要があります。
TemplateVersionを取得すればテンプレート更新に関する値が取り出せます。
また、提供されていれば、ユーザー名なども取得できます。
Firebse Test Lab のトリガー
テストが完了した時にトリガーを設定できます。テスト完了の知らせをSlackで受け取ることも可能です。
functions.testLab.testMatrix().onComplete() を使用して、TestMatrix が作成されたときにトリガーされる新しい関数を作成します。
exports.sendEmailNotification = functions.testLab.testMatrix().onComplete((testMatrix) => {
// ...
});
Firebase Authentication のトリガー
Authenticationでトリガーを使う場合は ユーザーの作成(登録),削除を行った時に設定できます。
ユーザー作成時のトリガーは functions.auth.user().onCreate()で使うことができる
exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => { // ...
});
ユーザー削除時のトリガーはfunctions.auth.user().onDelete()で使うことができる
exports.sendByeEmail = functions.auth.user().onDelete((user) => { // ...
});
Google Analytics のトリガー
アナリティクスで作成したイベントに合わせてトリガーを作ることができる
functions.analytics.event() メソッドを使ってイベントのトリガーを設定する。
onLog() ハンドラ内でイベントを処理する必要があります。
exports.sendCouponOnPurchase = functions.analytics.event('in_app_purchase').onLog((event) => { // ...
});
Crashlytics のトリガー
イベントタイプ | トリガーの説明 |
---|---|
onNew | 作成したアプリで他と重複しないクラッシュが起きた時に送信 |
onRegressed | 問題が終わった時に送信 |
onVelocityAlert | 特定の数の問題が起きた時に送信 |
Storage のトリガー
イベントタイプ | トリガーの説明 |
---|---|
onArchive | バケットでオブジェクトのバージョニングが有効になっている場合にのみ送信 |
onDelete | 記録されているオブジェクトが削除された時に送信 |
onFinalize | バケット内で新しいオブジェクトが作成された時に送信(コピーでも)アップロードエラーでは送信されない |
onMetadataUpdate | 既存のオブジェクトのデータが変更された時に送信 |
Cloud Pub/Sub トリガー
functions.pubsub を使うと Pub/Subのイベントを扱うことができます。
新しいPub/Subのメッセージが特定のトピックに送信される時にトリガーを設定することができます。
onPublishハンドラ内でイベントを設定する必要がある
exports.helloPubSub = functions.pubsub.topic('topic-name').onPublish((message) => { // ...
});
HTTP のトリガー
functions.https を使ってHTTP メソッド(GET、POST、PUT、DELETE、OPTIONS)の同期関数を使うことができる。
Request オブジェクトを使用すると、クライアントから送信された HTTP リクエストのプロパティにアクセスできます。
exports.date = functions.https.onRequest((req, res) => { // ...
});