メインコンテンツまでスキップ

カスタムファンクションでのカスタムデータ定義・カスタムデータの使用方法

カスタムファンクションでは BaaS で独自に定義したカスタムデータ定義やカスタムデータを取得して処理に使用することができます。

備考

現在カスタムファンクションではカスタムデータ定義・カスタムデータの取得のみを対応しています。

カスタムデータサービスの取得

カスタムデータにアクセスするためには、まずbaseServiceを使用してカスタムデータサービスのインスタンスを取得する必要があります。

サービスの初期化

カスタムデータ定義名(テーブル名)を指定してサービスインスタンスを取得します:

const customDataService =
await baseService.createCustomDataServiceByDefinitionName(
'カスタムデータ定義名'
)

カスタムデータの操作

カスタムデータサービスを使用して、以下の操作が可能です:

  • カスタムデータ定義の取得
  • カスタムデータの取得
  • カスタムデータの作成
  • カスタムデータの更新
  • カスタムデータの削除

詳細な実装方法についてはAPI ドキュメントを参照してください。

利用上の注意点

危険
  1. カスタムデータ定義名は正確に指定する必要があります
  2. 各操作は非同期で実行されるため、必ずawaitを使用してください

エラーハンドリング

カスタムデータの操作時には適切なエラーハンドリングを実装することをお勧めします。特に以下の点に注意してください:

  • カスタムデータ定義が存在しない場合のエラー

詳細な仕様

より詳細な実装の仕様やメソッドの詳細については、以下の API ドキュメントを参照してください:

📄️ UserCustomDataService

カスタムデータ定義・カスタムデータにアクセスするためのサービス

📄️ CustomDataServiceFactory

カスタムデータ定義・カスタムデータにアクセスするためのサービスを作成するためのクラス

実装例

カスタムデータの新規作成

前提:
カスタムデータ定義名: 共通データA
共通データAには下記項目が存在している

項目名キー名データタイプ必須・非必須
必須文字列requiredString文字列必須
必須数値requiredNumber数値必須
必須論理値requiredBoolean論理値必須
必須日付requiredDate日付必須
非必須文字列notRequiredString文字列非必須
非必須数値notRequiredNumber数値非必須
非必須論理値notRequiredBoolean論理値非必須
非必須日付notRequiredDate日付非必須
// カスタムデータを新規作成する
async function main() {
// カスタムデータを扱うクラスを作成する
const service =
await baseService.createCustomDataServiceByDefinitionName('共通データA')

// 新しいカスタムデータを作成する(非必須はnullとして登録される)
const newData = {
requiredString: 'test',
requiredNumber: 100,
requiredBoolean: true,
requiredDate: Timestamp.fromDate(new Date()),
}

// DBに永続化する
const result = await service.createCustomData(newData)
}

main()

カスタムデータの取得・更新

前提: 上記カスタムデータの作成と同じ

// カスタムデータを1件更新する
async function main() {
// カスタムデータ定義名: `共通データA`のデータサービスを作成する
const service =
await baseService.createCustomDataServiceByDefinitionName('共通データA')

// データを全件取得する
const currentCustomData = await service.getCustomDataByQuery((qb) => qb)

// デバッグ用に更新前のデータをログ出力する
logger.info('更新前データ', currentCustomData)

if (currentCustomData.length > 0) {
// データを1件取得する
const target = currentCustomData[0]

// データのユニークIDを取得する
const { docId } = target

// 更新するデータを作成する(更新する項目のみ)
const newData = {
requiredString: 'hello world',
}

// データの更新処理を行う
const result = await service.updateCustomData(docId, newData)
}

// 再度データを全件取得して更新が反映されているか確認する
const updatedCustomData = await service.getCustomDataByQuery((qb) => qb)
logger.info('更新後データ', updatedCustomData)
}

main()