カスタムファンクションでのカスタムデータ定義・カスタムデータの使用方法
カスタムファンクションでは BaaS で独自に定義したカスタムデータ定義やカスタムデータを取得して処理に使用することができます。
備考
現在カスタムファンクションではカスタムデータ定義・カスタムデータの取得のみを対応しています。
カスタムデータサービスの取得
カスタムデータにアクセスするためには、まずbaseService
を使用してカスタムデータサービスのインスタンスを取得する必要があります。
サービスの初期化
カスタムデータ定義名(テーブル名)を指定してサービスインスタンスを取得します:
const customDataService =
await baseService.createCustomDataServiceByDefinitionName(
'カスタムデータ定義名'
)
カスタムデータの操作
カスタムデータサービスを使用して、以下の操作が可能です:
- カスタムデータ定義の取得
- カスタムデータの取得
- カスタムデータの作成
- カスタムデータの更新
- カスタムデータの削除
詳細な実装方法についてはAPI ドキュメントを参照してください。
利用上の注意点
危険
- カスタムデータ定義名は正確に指定する必要があります
- 各操作は非同期で実行されるため、必ず
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()