entities モジュールを使うと、アプリのデータを操作できます。アプリの各エンティティタイプには、レコードを作成、読み取り、更新、削除するためのメソッドがあります。
エンティティメソッドには、エンティティ名を介してアクセスします: base44.entities.YourEntityName.methodName()。例えば、Task エンティティがある場合、base44.entities.Task.list() を使ってタスクのリストを取得します。
エンティティから TypeScript の型を生成して、オートコンプリートと型安全性を取得しましょう。プロジェクトで base44 types generate を実行すると、すべてのエンティティフィールド、メソッド、戻り値の型が完全に型付けされます。詳細は 動的な型 を参照してください。
データアクセスは、クライアントの認証モードとアプリの権限ルールによって制御されます。アプリのセキュリティ設定で各エンティティの権限を構成できます。詳細は データ権限の変更 を参照してください。
- 匿名ユーザー: パブリックとしてマークされたエンティティにのみアクセスできます。
- 認証済みユーザー: アプリで構成されたアクセスルールに基づいて、表示や変更が許可されているエンティティとレコードにアクセスできます。
- サービスロール: アプリの管理者が利用できるすべてのエンティティとレコードにアクセスできます。
バックエンドコードでは、サービスロールを使って管理者権限でデータにアクセス できます。
レコードを作成する
create() を使ってエンティティに新しいレコードを追加します。
const newTask = await base44.entities.Task.create({
title: "Complete documentation",
status: "pending",
dueDate: "2024-12-31",
});
レコードを読み取る
単一のレコードを取得するには get()、すべてのレコードを取得するには list()、特定の条件に一致するレコードを取得するには filter() を使ってデータを取得します。
特定のレコードを取得するには、レコード ID を指定して get() を使います。
const task = await base44.entities.Task.get(taskId);
すべてのレコードを取得するには list() を使います。このメソッドはソート、ページネーション、フィールド選択をサポートします。
const tasks = await base44.entities.Task.list();
特定の条件に一致するレコードを見つけるには filter() を使います。
const pendingTasks = await base44.entities.Task.filter({
status: "pending",
});
レコードを更新する
既存のレコードを変更するには update() を使います。
await base44.entities.Task.update(taskId, {
status: "completed",
});
レコードを削除する
単一のレコードを削除するには delete() を使います。
await base44.entities.Task.delete(taskId);
特定の条件に一致する複数のレコードを削除するには deleteMany() を使います。
const result = await base44.entities.Task.deleteMany({
status: "completed",
priority: "low",
});
一括操作
1 つのリクエストで複数のレコードを作成するには bulkCreate() を使います。
const tasks = await base44.entities.Task.bulkCreate([
{ title: "Task 1", status: "pending" },
{ title: "Task 2", status: "pending" },
{ title: "Task 3", status: "in-progress" },
]);
CSV ファイルからレコードをインポートするには importEntities() を使います。データの移行やユーザーインターフェイスからの一括アップロードに便利です。
const handleFileUpload = async (event) => {
const file = event.target.files?.[0];
if (file) {
const result = await base44.entities.Task.importEntities(file);
console.log(`Imported ${result.output.length} records`);
}
};
importEntities() はブラウザ環境を必要とし、バックエンドコードでは使用できません。
リアルタイムサブスクリプション
レコードが作成、更新、または削除されたときにリアルタイム更新を受け取るには subscribe() を使います。
const unsubscribe = base44.entities.Task.subscribe((event) => {
console.log(`Task ${event.id} was ${event.type}d`);
console.log("Updated data:", event.data);
});
// Later, clean up the subscription
unsubscribe();
サービスロールでのデータアクセス
デフォルトでは、データアクセスは現在のユーザーの権限にスコープされます。サービスロール認証を使うと、管理者レベルの権限でデータにアクセスできます。つまり、アプリの管理者ロールがアクセスできるデータにアクセスできます。
管理者権限でデータにアクセスするには base44.asServiceRole.entities を使います。
// User-level access (limited to current user's permissions)
const myTasks = await base44.entities.Task.list();
// Service role access (admin-level permissions)
const allTasks = await base44.asServiceRole.entities.Task.list();
User エンティティ
すべての Base44 アプリには、ユーザーアカウント情報を保存する組み込みの User エンティティが含まれています。このエンティティには特別なセキュリティルールがあります。
- 通常のユーザーは、自分のユーザーレコードのみ読み取り・更新できます
- サービスロール認証を使うと、任意のユーザーを読み取り、更新、削除できます
- entities モジュール経由でユーザーを作成することはできません。代わりに
auth モジュールを使ってください
User エンティティにフィールドを追加して追加のユーザーデータを保存し、セキュリティルールでそれらのフィールドを使ってデータアクセスを制御したり、アプリで体験をパーソナライズしたりできます。詳細は User Schema を参照してください。
const allUsers = await base44.asServiceRole.entities.User.list();
entities モジュール
完全な API リファレンス
Base44 クライアント
クライアントとサービスロールについて学ぶ
このページは AI を使用して翻訳されました。最も正確で最新の情報については、
英語版 を参照してください。