# Supabase Integration

## Setup

1. **Supabase Projekt erstellen:**
   - Gehe zu [supabase.com](https://supabase.com)
   - Erstelle ein neues Projekt
   - Warte bis das Projekt vollständig erstellt ist
   - Gehe zu Settings > API
   - Kopiere die "Project URL" und "anon public" Key

2. **Umgebungsvariablen setzen:**
   Erstelle eine `.env` Datei im Root-Verzeichnis:
   ```
   EXPO_PUBLIC_SUPABASE_URL=https://deine-projekt-id.supabase.co
   EXPO_PUBLIC_SUPABASE_ANON_KEY=dein-echter-anon-key
   ```

   **Wichtig:** 
   - Verwende die echte Project URL (nicht die Platzhalter)
   - Verwende den echten anon public key
   - Keine Anführungszeichen um die Werte

3. **App neu starten:**
   ```bash
   npm start
   # Dann 'r' drücken für Reload
   ```

4. **Datenbank-Tabelle erstellen (optional):**
   ```sql
   CREATE TABLE example_table (
     id SERIAL PRIMARY KEY,
     name TEXT,
     created_at TIMESTAMP DEFAULT NOW()
   );
   ```

## Fehlerbehebung

### "JSON Parse error: Unexpected end of input"
**Ursache:** Supabase ist nicht korrekt konfiguriert

**Lösung:**
1. Prüfe deine `.env` Datei - sind die Werte korrekt?
2. Starte die App neu nach Änderungen der `.env`
3. Prüfe die Konsole für "✅ Supabase Client erfolgreich erstellt"

### "Auth session missing"
**Ursache:** Normal beim ersten Start ohne angemeldeten Benutzer

**Lösung:** Ignoriere diese Meldung - sie verschwindet nach der ersten Anmeldung

## Verwendung

Die App hat jetzt:
- ✅ Supabase Client installiert
- ✅ Konfigurationsdatei erstellt (`lib/supabase.ts`)
- ✅ Test-Button im Menü hinzugefügt
- ✅ Beispiel-Funktion für Datenbankabfragen
- ✅ Login/Registrierung mit Supabase Auth

## Nächste Schritte

1. **Authentifizierung testen:**
   - Registriere einen neuen Benutzer
   - Bestätige die E-Mail-Adresse
   - Logge dich ein

2. **Realtime Subscriptions:**
   ```javascript
   const subscription = supabase
     .channel('table_name')
     .on('postgres_changes', { event: '*', schema: 'public', table: 'table_name' }, payload => {
       console.log('Change received!', payload)
     })
     .subscribe()
   ```

3. **Storage für Dateien:**
   ```javascript
   const { data, error } = await supabase.storage
     .from('bucket_name')
     .upload('file_path', file)
   ```

## Sicherheit

- Verwende Row Level Security (RLS) in Supabase
- Setze entsprechende Policies für deine Tabellen
- Verwende nur den Anon Key in der Client-App
- Aktiviere E-Mail-Bestätigung für neue Registrierungen 