> ## Documentation Index
> Fetch the complete documentation index at: https://docs.base44.com/llms.txt
> Use this file to discover all available pages before exploring further.

# User-Schema

> Erweitere die eingebaute User-Entität mit zusätzlichen Feldern für deine App.

<div className="dev-docs-banner">
  <div className="dev-docs-banner-content">
    <div className="dev-docs-banner-title">
      Du siehst gerade die Entwicklerdokumentation
    </div>

    <div className="dev-docs-banner-text">
      Diese Dokumentation richtet sich an Entwickler, die mit der Base44-Entwicklerplattform arbeiten. Informationen zum Verwalten deiner App-Daten über den App-Editor findest du unter <a href="/Building-your-app/Managing-your-app-data">App-Daten verwalten</a>.
    </div>
  </div>
</div>

Die User-Entität existiert standardmäßig in jedem Base44-Projekt und speichert Informationen über die Benutzer deiner App. Du kannst Felder hinzufügen, um zusätzliche Benutzerdaten zu speichern, und diese Felder dann in [Sicherheitsregeln](/developers/backend/resources/entities/security) verwenden, um den Datenzugriff zu steuern, oder in deiner App, um das Erlebnis zu personalisieren.

## Eingebaute Felder

Jede User-Entität enthält standardmäßig eine Reihe von eingebauten Feldern.

| Feld        | Typ    | Beschreibung                 |
| ----------- | ------ | ---------------------------- |
| `full_name` | string | Anzeigename des Benutzers    |
| `email`     | string | E-Mail-Adresse des Benutzers |
| `role`      | string | Entweder `admin` oder `user` |

Die User-Entität hat außerdem die [allgemeinen eingebauten Felder](/developers/backend/resources/entities/entity-schemas#built-in-fields), die auf allen Entitäten existieren, etwa `id` und `created_date`.

Diese Felder werden vom System verwaltet und können in deinem Schema nicht neu definiert werden.

## Eigene Felder

Um eigene Felder hinzuzufügen, definiere ein User-Schema, das nur deine zusätzlichen Felder enthält. Der Versuch, eingebaute Felder neu zu definieren, führt zu einem Validierungsfehler.

Erstelle eine `User.json`- oder `User.jsonc`-Datei im Entities-Verzeichnis deines Projekts. Standardmäßig ist das `base44/entities/`, aber du kannst den Pfad in deiner [Projektkonfiguration](/developers/backend/overview/project-structure#configjsonc) anpassen.

```json entities/User.json theme={null}
{
  "type": "object",
  "properties": {
    "company": { "type": "string" },
    "phone": { "type": "string" },
    "job_title": { "type": "string" },
    "bio": { 
      "type": "string",
      "maxLength": 500
    }
  },
  "required": ["company"]
}
```

Pushe dann deine Entitäten zu Base44 mit [`entities push`](/developers/references/cli/commands/entities-push) oder [`deploy`](/developers/references/cli/commands/deploy).

## Vollständiges Beispiel

Hier ist ein vollständiges User-Schema mit verschiedenen Feldtypen:

```json theme={null}
{
  "type": "object",
  "properties": {
    "company": {
      "type": "string"
    },
    "phone": {
      "type": "string"
    },
    "job_title": {
      "type": "string",
      "maxLength": 100
    },
    "bio": {
      "type": "string",
      "maxLength": 500
    },
    "website": {
      "type": "string",
      "format": "uri"
    },
    "preferences": {
      "type": "object",
      "properties": {
        "theme": {
          "type": "string",
          "enum": ["light", "dark"],
          "default": "light"
        },
        "notifications": {
          "type": "boolean",
          "default": true
        }
      }
    }
  },
  "required": ["company"]
}
```

## Deine Felder verwenden

Sobald du dein User-Schema definiert und gepusht hast, kannst du deine Felder in Sicherheitsregeln referenzieren und in deinem App-Code darauf zugreifen.

### In Sicherheitsregeln

Du kannst Benutzerfelder verwenden, um den Zugriff auf andere Entitäten zu steuern. Du könntest etwa Benutzer darauf beschränken, nur Datensätze zu sehen, die zu ihrem Unternehmen gehören.

Um Benutzerfelder in [Sicherheitsregeln](/developers/backend/resources/entities/security) zu referenzieren, verwende die Template-Syntax `{{user.data.*}}`:

```json theme={null}
{
  "rls": {
    "read": {"data.company": "{{user.data.company}}"},
    "update": {"data.company": "{{user.data.company}}"}
  }
}
```

Diese Regel stellt sicher, dass Benutzer nur Datensätze lesen und aktualisieren können, deren `company`-Feld mit ihrem eigenen übereinstimmt.

### Im Code

Greife über das [SDK](/developers/references/sdk/getting-started/overview) auf Benutzerfelder zu:

```typescript theme={null}
// Get current user's fields
const currentUser = await base44.auth.me();
console.log(currentUser.company); // "Acme Inc"

// Update current user's fields
await base44.auth.updateMe({
  phone: "+1-555-0123",
  job_title: "Senior Developer"
});

// List all users with service role (backend functions only)
const allUsers = await base44.asServiceRole.entities.User.list();
```

<Info>
  Dieses Beispiel verwendet einen `base44`-Client. Siehe [Einrichten des Clients](/developers/references/sdk/getting-started/client) für Einrichtungsanweisungen.
</Info>

## Siehe auch

* [Entitäten – Übersicht](/developers/backend/resources/entities/overview): Lerne mehr über die Datenbankschema-Konfiguration
* [Entity-Schemas](/developers/backend/resources/entities/entity-schemas): Definiere deine Entitätsstruktur
* [Sicherheit](/developers/backend/resources/entities/security): Konfiguriere Row-Level-Security-Regeln
* [Projektstruktur](/developers/backend/overview/project-structure): Wie Entity-Schemas in dein Projekt passen

<Note>Diese Seite wurde mit KI übersetzt. Für die genauesten und aktuellsten Informationen siehe die [englische Version](/). </Note>
