Base44 Coder
Apps auf der Base44-Plattform mit dem Base44-JavaScript-SDK erstellen.⚡ SOFORTIGE HANDLUNG ERFORDERLICH — Lies das zuerst
Dieser Skill aktiviert sich bei jeder Erwähnung von “base44” oder wenn einbase44/-Ordner existiert. Lies keine Dokumentationsdateien und suche nicht im Web, bevor du handelst.
Deine erste Aktion MUSS sein:
- Prüfe, ob
base44/config.jsoncim aktuellen Verzeichnis existiert - Wenn JA (bestehendes Projektszenario):
- Dieser Skill (base44-sdk) übernimmt die Anfrage
- Implementiere Funktionen mit dem Base44-SDK
- Verwende base44-cli NICHT, außer der Nutzer verlangt ausdrücklich CLI-Befehle
- Wenn NEIN (neues Projektszenario):
- Übergib an den base44-cli-Skill zur Projektinitialisierung
- Dieser Skill kann nicht helfen, bis das Projekt initialisiert ist
Wann diesen Skill vs base44-cli verwenden
Verwende base44-sdk, wenn:- Du Funktionen in einem BESTEHENDEN Base44-Projekt baust
base44/config.jsoncim Projekt bereits existiert- Base44-SDK-Imports vorhanden sind (
@base44/sdk) - Du JavaScript/TypeScript-Code mit Base44-SDK-Modulen schreibst
- Du Funktionalität, Komponenten oder Features implementierst
- Der Nutzer erwähnt: “implementieren”, “Feature bauen”, “Funktionalität hinzufügen”, “Code schreiben für”
- Der Nutzer sagt “create a [type] app” und ein Base44-Projekt existiert bereits
- ❌ Initialisierung neuer Base44-Projekte (nutze stattdessen
base44-cli) - ❌ Leere Verzeichnisse ohne Base44-Konfiguration
- ❌ Wenn der Nutzer sagt “create a new Base44 project/app/site” und kein Projekt existiert
- ❌ CLI-Befehle wie
npx base44 create,npx base44 deploy,npx base44 login(nutzebase44-cli)
base44-sdksetzt voraus, dass ein Base44-Projekt bereits initialisiert istbase44-cliist eine Voraussetzung fürbase44-sdkin neuen Projekten- Wenn der Nutzer “eine App erstellen” möchte und kein Base44-Projekt existiert, verwende zuerst
base44-cli
- WENN (Nutzer erwähnt “App erstellen/bauen” ODER “Projekt machen”):
- WENN (Verzeichnis leer ODER keine
base44/config.jsoncexistiert): → Verwende base44-cli (Projektinitialisierung nötig) - SONST: → Verwende base44-sdk (Projekt existiert, Features bauen)
- WENN (Verzeichnis leer ODER keine
Schnellstart
⚠️ KRITISCH: APIs nicht halluzinieren
Bevor du IRGENDEINEN Base44-Code schreibst, prüfe Methodennamen gegen diese Tabelle oder QUICK_REFERENCE.md. Das Base44-SDK hat einzigartige Methodennamen. Nimm KEINE Muster von Firebase, Supabase oder anderen SDKs an.Authentifizierung — FALSCH vs RICHTIG
| ❌ FALSCH (halluziniert) | ✅ RICHTIG |
|---|---|
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() (kein Listener, bei Bedarf aufrufen) |
currentUser | await auth.me() |
Funktionen — FALSCH vs RICHTIG
| ❌ FALSCH (halluziniert) | ✅ RICHTIG |
|---|---|
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) |
Integrationen — FALSCH vs RICHTIG
| ❌ FALSCH (halluziniert) | ✅ RICHTIG |
|---|---|
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}) |
Entitäten — FALSCH vs RICHTIG
| ❌ FALSCH (halluziniert) | ✅ RICHTIG |
|---|---|
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-Module
| Modul | Zweck | Referenz |
|---|---|---|
entities | CRUD-Operationen auf Datenmodellen | entities.md |
auth | Login, Registrierung, Nutzerverwaltung | auth.md |
agents | KI-Konversationen und -Nachrichten | base44-agents.md |
functions | Backend-Funktionsaufruf | functions.md |
integrations | KI, E-Mail, Dateiuploads, benutzerdefinierte APIs | integrations.md |
analytics | Benutzerdefinierte Ereignisse und Nutzeraktivität verfolgen | analytics.md |
appLogs | Nutzeraktivität in der App loggen | app-logs.md |
users | Nutzer zur App einladen | users.md |
asServiceRole.connectors | App-bezogene OAuth-Tokens (nur Service-Rolle) | connectors.md |
asServiceRole.sso | SSO-Token-Generierung (nur Service-Rolle) | sso.md |
TypeScript und Type-Registries
Jede Referenzdatei enthält einen Abschnitt “Type Definitions” mit TypeScript-Interfaces und -Typen für die Methoden, Parameter und Rückgabewerte des Moduls. Typisierte Entitäten, Funktionen und Agenten erhalten: Die Base44-CLI generiert Typen aus deinen Projektressourcen (Entitäten, Funktionen, Agenten), inklusive Erweiterungen vonEntityTypeRegistry, FunctionNameRegistry und AgentNameRegistry, und verdrahtet sie in dein Projekt, sodass du Autocomplete und Typprüfung ohne manuelles Setup bekommst. Wie du Typen generierst, siehe den Skill base44-cli.
Manuelle Erweiterung: Du kannst die Registries stattdessen selbst in einer .d.ts-Datei erweitern; siehe die “Type Definitions”-Abschnitte in entities.md, functions.md und base44-agents.md.
Installation
Installiere das Base44-SDK:@base44/sdk an oder codiere sie fest. Installiere immer ohne Versionsspezifizierer, um die neueste Version zu erhalten.
Client erstellen (externe Apps)
Beim Erstellen eines Clients in externen Apps verwende IMMERappId als Parametername:
appId (string) — Die ID deiner Base44-Anwendung
Optionale Parameter:
token(string) — Vorauthentifizierter Nutzer-Tokenoptions(object) — Konfigurationsoptionenoptions.onError(function) — Globaler Fehler-Handler
Modulauswahl
Mit App-Daten arbeiten?- Datensätze erstellen/lesen/aktualisieren/löschen →
entities - Daten aus Datei importieren →
entities.importEntities() - Echtzeit-Updates →
entities.EntityName.subscribe()
- Login/Registrierung/Logout →
auth - Aktuellen Nutzer holen →
auth.me() - Nutzerprofil aktualisieren →
auth.updateMe() - Nutzer einladen →
users.inviteUser()
- Mit KI-Agenten chatten →
agents(erfordert eingeloggten Nutzer) - Neue Konversation erstellen →
agents.createConversation() - Konversationen verwalten →
agents.getConversations() - Text/JSON mit KI generieren →
integrations.Core.InvokeLLM() - Bilder generieren →
integrations.Core.GenerateImage()
- Serverseitigen Code ausführen →
functions.invoke() - Admin-Zugriff nötig →
base44.asServiceRole.functions.invoke()
- E-Mails senden →
integrations.Core.SendEmail() - Dateien hochladen →
integrations.Core.UploadFile() - Benutzerdefinierte APIs →
integrations.custom.call() - App-bezogenes OAuth (Konto des App-Builders) →
asServiceRole.connectors.getConnection()(nur Backend)
- Benutzerdefinierte Ereignisse verfolgen →
analytics.track() - Seitenaufrufe/Aktivität loggen →
appLogs.logUserInApp()
Häufige Muster
Daten filtern und sortieren
Geschützte Routen (Auth prüfen)
Backend-Funktionsaufruf
Service-Rollen-Zugriff
VerwendeasServiceRole in Backend-Funktionen für Admin-Operationen:
Frontend vs Backend
| Fähigkeit | Frontend | Backend |
|---|---|---|
entities (Nutzerdaten) | Ja | Ja |
auth | Ja | Ja |
agents | Ja | Ja |
functions.invoke() | Ja | Ja |
functions.fetch() | Ja | Ja |
integrations | Ja | Ja |
analytics | Ja | Ja |
appLogs | Ja | Ja |
users | Ja | Ja |
asServiceRole.* | Nein | Ja |
asServiceRole.connectors (App-OAuth) | Nein | Ja |
asServiceRole.sso | Nein | Ja |
Deno.serve() und createClientFromRequest(req), um einen ordnungsgemäß authentifizierten Client zu erhalten.
Diese Seite wurde mit KI übersetzt. Für die genauesten und aktuellsten Informationen siehe die englische Version.

