Base44 Coder
Base44 JavaScript SDK を使用して Base44 プラットフォーム上でアプリを構築します。⚡ 即時アクション必須 - まずこれを読む
このスキルは “base44” への言及があった場合、またはbase44/ フォルダーが存在する場合に有効化されます。行動する前にドキュメントファイルを読んだり Web を検索したりしないでください。
最初のアクションは必ず以下のとおりです:
- カレントディレクトリに
base44/config.jsoncが存在するか確認する - 存在する 場合 (既存プロジェクトのシナリオ):
- このスキル (base44-sdk) がリクエストを処理します
- Base44 SDK を使用して機能を実装します
- ユーザーが明示的に CLI コマンドを要求しない限り base44-cli は使用しません
- 存在しない 場合 (新規プロジェクトシナリオ):
- プロジェクトの初期化のために base44-cli スキルに引き継ぎます
- プロジェクトが初期化されるまで、このスキルは支援できません
このスキルと base44-cli の使い分け
base44-sdk を使う場合:- 既存の Base44 プロジェクトで機能を構築する
- プロジェクトに
base44/config.jsoncがすでに存在する - Base44 SDK のインポート (
@base44/sdk) が存在する - Base44 SDK モジュールを使用して JavaScript/TypeScript コードを書く
- 機能、コンポーネント、フィーチャーを実装する
- ユーザーの発言: 「実装する」「機能を構築する」「機能を追加する」「〜のコードを書く」
- ユーザーが「[タイプ] アプリを作成」と言い、かつ Base44 プロジェクトがすでに存在する
- ❌ 新規 Base44 プロジェクトの初期化 (代わりに
base44-cliを使用) - ❌ Base44 構成のない空のディレクトリ
- ❌ ユーザーが「新しい Base44 プロジェクト/アプリ/サイトを作成」と言い、プロジェクトが存在しない場合
- ❌
npx base44 create、npx base44 deploy、npx base44 loginなどの CLI コマンド (base44-cliを使用)
base44-sdkは Base44 プロジェクトが すでに初期化されている ことを前提としますbase44-cliは新規プロジェクトにおけるbase44-sdkの 前提条件 です- ユーザーが「アプリを作成」したく、Base44 プロジェクトが存在しない場合は、まず
base44-cliを使用します
- IF (ユーザーが「アプリを作成/構築」または「プロジェクトを作る」と発言):
- IF (ディレクトリが空、または
base44/config.jsoncが存在しない): → base44-cli を使用 (プロジェクト初期化が必要) - ELSE: → base44-sdk を使用 (プロジェクトが存在、機能を構築)
- IF (ディレクトリが空、または
クイックスタート
⚠️ 重要: API をハルシネートしない
Base44 コードを書く前に、このテーブルまたは QUICK_REFERENCE.md と照合してメソッド名を検証してください。 Base44 SDK には独自のメソッド名があります。Firebase、Supabase、または他の SDK のパターンを想定しないでください。認証 - 誤 vs 正
| ❌ 誤 (ハルシネート) | ✅ 正 |
|---|---|
signInWithGoogle() | loginWithProvider('google') |
signInWithProvider('google') | loginWithProvider('google') |
auth.google() | loginWithProvider('google') |
signInWithEmailAndPassword(email, pw) | loginViaEmailPassword(email, pw) |
signIn(email, pw) | loginViaEmailPassword(email, pw) |
createUser() / signUp() | register({email, password}) |
onAuthStateChanged() | me() (リスナーなし、必要時に呼び出し) |
currentUser | await auth.me() |
関数 - 誤 vs 正
| ❌ 誤 (ハルシネート) | ✅ 正 |
|---|---|
functions.call('name', data) | functions.invoke('name', data) |
functions.run('name', data) | functions.invoke('name', data) |
callFunction('name', data) | functions.invoke('name', data) |
httpsCallable('name')(data) | functions.invoke('name', data) |
インテグレーション - 誤 vs 正
| ❌ 誤 (ハルシネート) | ✅ 正 |
|---|---|
ai.generate(prompt) | integrations.Core.InvokeLLM({prompt}) |
openai.chat(prompt) | integrations.Core.InvokeLLM({prompt}) |
llm(prompt) | integrations.Core.InvokeLLM({prompt}) |
sendEmail(to, subject, body) | integrations.Core.SendEmail({to, subject, body}) |
email.send() | integrations.Core.SendEmail({to, subject, body}) |
uploadFile(file) | integrations.Core.UploadFile({file}) |
storage.upload(file) | integrations.Core.UploadFile({file}) |
エンティティ - 誤 vs 正
| ❌ 誤 (ハルシネート) | ✅ 正 |
|---|---|
entities.Task.find({...}) | entities.Task.filter({...}) |
entities.Task.findOne(id) | entities.Task.get(id) |
entities.Task.insert(data) | entities.Task.create(data) |
entities.Task.remove(id) | entities.Task.delete(id) |
entities.Task.onChange(cb) | entities.Task.subscribe(cb) |
SDK モジュール
| モジュール | 目的 | リファレンス |
|---|---|---|
entities | データモデルの CRUD 操作 | entities.md |
auth | ログイン、登録、ユーザー管理 | auth.md |
agents | AI 会話とメッセージ | base44-agents.md |
functions | バックエンド関数の呼び出し | functions.md |
integrations | AI、メール、ファイルアップロード、カスタム API | integrations.md |
analytics | カスタムイベントとユーザーアクティビティのトラッキング | analytics.md |
appLogs | アプリ内のユーザーアクティビティのログ | app-logs.md |
users | アプリへのユーザー招待 | users.md |
asServiceRole.connectors | アプリスコープの OAuth トークン (サービスロールのみ) | connectors.md |
asServiceRole.sso | SSO トークン生成 (サービスロールのみ) | sso.md |
TypeScript と型レジストリ
各リファレンスファイルには、モジュールのメソッド、パラメーター、戻り値の TypeScript インターフェースと型を含む「Type Definitions」セクションが含まれます。 型付きエンティティ、関数、エージェントの取得: Base44 CLI はプロジェクトリソース (エンティティ、関数、エージェント) から型を生成し、EntityTypeRegistry、FunctionNameRegistry、AgentNameRegistry への拡張を含め、手動セットアップなしにオートコンプリートと型チェックを取得できるようにプロジェクトに配線します。型の生成方法については、base44-cli スキルを使用してください。
手動での拡張: 代わりに .d.ts ファイルでレジストリを自分で拡張できます。entities.md、functions.md、base44-agents.md の Type Definitions セクションを参照してください。
インストール
Base44 SDK をインストールします:@base44/sdk パッケージのバージョンを推測またはハードコードしないでください。最新版を取得するために、バージョン指定子なしで常にインストールしてください。
クライアントの作成 (外部アプリ)
外部アプリでクライアントを作成する際は、必ずパラメーター名としてappId を使用してください:
appId (string) - Base44 アプリケーション ID
オプションパラメーター:
token(string) - 事前認証されたユーザートークンoptions(object) - 構成オプションoptions.onError(function) - グローバルエラーハンドラー
モジュール選択
アプリデータを扱いますか?- レコードの作成/読み取り/更新/削除 →
entities - ファイルからデータをインポート →
entities.importEntities() - リアルタイム更新 →
entities.EntityName.subscribe()
- ログイン/登録/ログアウト →
auth - 現在のユーザーを取得 →
auth.me() - ユーザープロフィールを更新 →
auth.updateMe() - ユーザーを招待 →
users.inviteUser()
- AI エージェントとチャット →
agents(ログイン済みユーザー必須) - 新しい会話を作成 →
agents.createConversation() - 会話を管理 →
agents.getConversations() - AI でテキスト/JSON を生成 →
integrations.Core.InvokeLLM() - 画像を生成 →
integrations.Core.GenerateImage()
- サーバー側コードを実行 →
functions.invoke() - 管理者アクセスが必要 →
base44.asServiceRole.functions.invoke()
- メール送信 →
integrations.Core.SendEmail() - ファイルアップロード →
integrations.Core.UploadFile() - カスタム API →
integrations.custom.call() - アプリスコープの OAuth (アプリビルダーのアカウント) →
asServiceRole.connectors.getConnection()(バックエンドのみ)
- カスタムイベントをトラッキング →
analytics.track() - ページビュー/アクティビティをログ →
appLogs.logUserInApp()
一般的なパターン
データのフィルタリングとソート
保護されたルート (認証チェック)
バックエンド関数の呼び出し
サービスロールアクセス
バックエンド関数で管理者レベルの操作にはasServiceRole を使用します:
フロントエンド vs バックエンド
| 機能 | フロントエンド | バックエンド |
|---|---|---|
entities (ユーザーのデータ) | はい | はい |
auth | はい | はい |
agents | はい | はい |
functions.invoke() | はい | はい |
functions.fetch() | はい | はい |
integrations | はい | はい |
analytics | はい | はい |
appLogs | はい | はい |
users | はい | はい |
asServiceRole.* | いいえ | はい |
asServiceRole.connectors (アプリ OAuth) | いいえ | はい |
asServiceRole.sso | いいえ | はい |
Deno.serve() と createClientFromRequest(req) を使用して、正しく認証されたクライアントを取得します。
このページは AI を使用して翻訳されました。最も正確で最新の情報については、英語版 を参照してください。

