121
94

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CloudFunctions for Firebase トリガー 関数 早見表

Last updated at Posted at 2020-01-06

CloudFunctions for Firebaseの一つの利点は、他のFirebase サービスとの強力な連携です。
Functionの起動トリガーとして、各サービスのイベントを利用できます。
今回はサービスごとに多様にあるトリガーをまとめてみました。

ここで紹介したコードはこちらのGithubリポジトリにあります。
https://github.com/kawamataryo/firebase-functions-trigger-list

Firestore

#onCreate

document()で指定したコレクションへのドキュメントの追加をトリガーに関数が実行される。

export const onCreate = functions.firestore
  .document("/users/{userId}")
  .onCreate(async (snapshot, context) => {
    // do anything
    console.log(`user ${context.params.userId} created.`);
  });

#onUpdate

document()で指定したコレクションのドキュメントの更新をトリガーに関数が実行される。

export const onUpdate = functions.firestore
  .document("/users/{userId}")
  .onUpdate(async (change, context) => {
    // do anything
    console.log(`user ${context.params.userId} updated.`);
  });

#onDelete

document()で指定したコレクションからのドキュメントの削除をトリガーに関数が実行される。

export const onDelete = functions.firestore
  .document("/users/{userId}")
  .onDelete(async (snapshot, context) => {
    // do anything
    console.log(`user ${context.params.userId} deleted.`);
  });

#onWrite

document()で指定したコレクションにてドキュメントの追加・更新・削除をトリガーに関数が実行される。

export const onWrite = functions.firestore
  .document("/users/{userId}")
  .onWrite(async (change, context) => {
    // do anything
    console.log(`user ${context.params.userId} wrote.`);
  });

Firebase Authentication

#onCreate

Firebase Authenticationでのユーザー追加をトリガーに関数が実行される。

export const onCreate = functions.auth
  .user()
  .onCreate((userRecord, _context) => {
    // do anything
    console.log(`user ${userRecord.uid} created.`);
  });

#onDelete

Firebase Authenticationでのユーザー削除をトリガーに関数が実行される。

export const onDelete = functions.auth
  .user()
  .onDelete((userRecord, _context) => {
    // do anything
    console.log(`user ${userRecord.uid} deleted.`);
  });

Firebase Analytics

#onLog

event()で指定したイベントの発生をトリガーに関数が実行される。

export const sampleEvent = functions.analytics
  .event("sample_event")
  .onLog((analyticsEvent, context) => {
    // do anything
    console.log(`Trigger ${analyticsEvent.name}.`);
  });

Remote Config

#onUpdate

設定の更新をトリガーに関数が実行される。

export const onUpdate = functions.remoteConfig.onUpdate(
  (templateVersion, _context) => {
    // do anything
    console.log(`Remote config updated to ${templateVersion.versionNumber}`);
  }
);

Cloud Storage

#onArchive

オブジェクトのライブバージョンがアーカイブバージョンになったことをトリガーに関数が実行される。

※ バケットでオブジェクトのバージョニングが有効になっている場合にのみ送信

export const onArchive = functions.storage
  .object()
  .onArchive((_objectMetadata, _context) => {
    // do anything
    console.log("storage archived");
  });

#onDelete

オブジェクトの更新、削除をトリガーに関数が実行される。
※ バケットでオブジェクトのバージョニングが有効になっている場合、onDeleteではなくonArchiveが実行される。(たぶん)

export const onDelete = functions.storage
  .object()
  .onDelete((_objectMetadata, _context) => {
    // do anything
    console.log("storage deleted");
  });

#onFinalize

バケットで新しいオブジェクトが正常に作成されたことをトリガーに関数が実行される。

※ 既存のオブジェクトをコピーまたは再作成した場合にも実行される
※ アップロードが失敗した場合は実行されない

export const onFinalize = functions.storage
  .object()
  .onFinalize((_objectMetadata, _context) => {
    // do anything
    console.log("storage finalized");
  });

#onMetadataUpdate

オブジェクトのメタデータが更新されたことをトリガーに関数が実行される。

export const onMetadataUpdate = functions.storage
  .object()
  .onMetadataUpdate((_objectMetadata, _context) => {
    // do anything
    console.log("storage metadata updated");
  });

Clashlytics

#onNew

新しいissueが発生したことをトリガーに関数が実行される。

export const onNew = functions.crashlytics
  .issue()
  .onNew(async (issue, _context) => {
    // do anything
    console.log(`New issue has occurred. ${issue.issueTitle}`);
  });

#onRegressed

一度クローズしたissueが再度発生したことをトリガーに関数が実行される。

export const onRegressed = functions.crashlytics
  .issue()
  .onRegressed(async (issue, _context) => {
    // do anything
    console.log(`Regressed has occurred. ${issue.issueTitle}`);
  });

#onVelocityAlert

設定したvelocityでAlertの発生をトリガーに関数が実行される。

export const onVelocityAlert = functions.crashlytics
  .issue()
  .onVelocityAlert(async (issue, _context) => {
    // do anything
    console.log(`Velocity alert. ${issue.issueTitle}`);
  });

Test Lab

#onComplete

TestMatrix が完了したことをトリガーに関数が実行される。

export const onComplete = functions.testLab
  .testMatrix()
  .onComplete((testMatrix, _context) => {
    // do anything
    console.log(`${testMatrix.testMatrixId} is complete`);
  });

参考

121
94
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
121
94

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?