3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

本記事の対象

  • FirebaseのCloudFunctionsを学習中
  • TypeScriptで書かれた関数をCloudFunctionsにデプロイしたい人

実装内容

  • クライアントサイドからのリクエストをトリガーとするonCall関数の実装
  • 定期的に自動実行されるonSchedule関数の実装

実装

Firebaseの初期設定

onCallの実装

  • 処理内容
    • クライアントサイドで商品登録のリクエストに対する処理
    • (※各々適切な処理を書いてください)
  • 第2世代での記述になることも気をつけてください
    • firebase-functions/v2/httpsからインポート
index.ts
import { onCall, CallableRequest } from "firebase-functions/v2/https";

import { registerItem } from "./helper/registerNewItem";

// データベースに商品を登録
exports.registerNewItem = onCall(async (request: CallableRequest) => {
  return await registerItem(request);
});

スケジューラの実装

  • 処理内容
    • 日本時間00:00に毎日自動で商品情報の更新が行われる
    • (※各々適切な処理を書いてください)
  • 第2世代での記述になることも気をつけてください
    • firebase-functions/v2/schedulerからインポート
index.ts
import { onSchedule } from "firebase-functions/v2/scheduler";

import { updateAllItems } from "./helper/updateAllItem";

// 商品情報の更新(毎日日本時間00:00に自動で実行される)
exports.runScheduledJobs = onSchedule(
  {
    schedule: "every day 00:00",
    timeZone: "Asia/Tokyo",
  },
  async () => {
    await updateAllItems();
  }
);

あとがき

CloudFunctionsは第1世代と第2世代で記述方法が異なることに戸惑いました。また、使用するべき関数がわかりにくかったので参考になればなによりです。

3
2
0

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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?