Supabase mit Lovable verbinden: Auth, Datenbank, Storage

Schritt für Schritt zur Supabase-Anbindung in Lovable. Projekt anlegen, Auth einrichten, Tabellen mit RLS, Storage und Edge Functions nutzen.

11. Juni 202612 Min. LesezeitTutorialvon Marcel Kleber

Supabase liefert für Lovable-Apps das komplette Backend: Login, Datenbank, Dateispeicher, Server-Funktionen, Live-Updates. Diese Anleitung führt durch das Setup und die Stellen, an denen man am häufigsten stolpert.

Kurzantwort

Supabase-Projekt anlegen, in Lovable über Connect Supabase verbinden, Datenmodell per Prompt erzeugen lassen, RLS-Policies prüfen, danach Auth, Storage oder Edge Functions je nach Bedarf ergänzen. Wer diese Reihenfolge einhält, hat das Backend an einem Nachmittag stehen.

Was Supabase überhaupt ist

Supabase ist eine quelloffene Backend-Plattform auf Basis von Postgres. Sie bündelt fünf Bausteine, die du sonst einzeln zusammen suchen müsstest, und stellt sie über eine einheitliche Oberfläche und APIs bereit.

Die Supabase-Bausteine im Überblick

BausteinZweckTypische NutzungWorauf achten
AuthLogin, Registrierung, Passwort-ResetE-Mail/Passwort, Magic Link, Google, GitHubSessions werden automatisch verwaltet, JWT im Browser
Database (Postgres)Strukturierte DatenTabellen, Foreign Keys, Views, FunctionsRLS-Policies pro Tabelle nicht vergessen
StorageDateien, Bilder, UploadsAvatare, PDFs, DokumentePublic oder per Policy geschützte Buckets
Edge FunctionsServer-Logik auf BestellungWebhooks, Stripe-Sync, MailsDeno-Runtime, eigene Secrets pro Funktion
RealtimeLive-Updates ohne PollingChats, Notifications, Live-DashboardsAuf Tabellen oder Channels abonnierbar

Setup in 5 Schritten

  1. Supabase-Account anlegen. Auf supabase.com registrieren, neues Projekt erstellen, Region in der EU wählen.
  2. In Lovable verbinden. Im Projekt oben rechts auf Connect Supabase klicken, Konto autorisieren, gewünschtes Projekt wählen.
  3. Datenmodell erzeugen. Per Prompt die nötigen Tabellen beschreiben (Spalten, Foreign Keys, Indexe).
  4. RLS-Policies anlegen. Im selben Prompt oder direkt danach: Policies, die auf auth.uid() einschränken.
  5. Auth einbauen. Login- und Registrierungsseite über Supabase Auth anlegen lassen. Mail-Templates später in der Supabase-Oberfläche feinjustieren.

Prompt-Vorlage für die Datenbank

Lege in Supabase folgendes Datenmodell an: Tabellen: - projects (id uuid pk, user_id uuid references auth.users, name text, created_at timestamptz default now()) - tasks (id uuid pk, project_id uuid references projects on delete cascade, title text, done boolean default false, created_at timestamptz default now()) Aktiviere RLS auf beiden Tabellen und lege Policies an, sodass jeder authentifizierte Nutzer ausschließlich seine eigenen projects und die zugehörigen tasks lesen, einfügen, aktualisieren und löschen kann. Generiere die passende TypeScript-Anbindung im Code.

RLS niemals überspringen

Ohne aktive RLS-Policies kann jeder mit dem Anon Key alle Daten abfragen. Prüfe nach der Migration in der Supabase-Oberfläche unter Authentication, dass jede Tabelle Policies hat und RLS aktiv ist. Die Projekt-Checkliste führt diesen Punkt explizit.

Auth einrichten

Für die meisten Apps reicht E-Mail mit Passwort plus optional Magic Link. OAuth-Provider wie Google oder GitHub aktivierst du in der Supabase-Oberfläche unter Authentication, danach kann Lovable die Buttons im UI ergänzen. Eine fertige Vorlage für Auth-Komponenten und Session-Handling steht in den Skill-Vorlagen.

Storage für Datei-Uploads

  • Bucket anlegen. In der Supabase-Oberfläche unter Storage, Name wählen, Public oder geschützt entscheiden.
  • Policies setzen. Für geschützte Buckets eine Policy, die nur den Besitzer (per auth.uid()) lesen oder hochladen lässt.
  • Upload-Komponente generieren. Prompt: „Komponente für File-Upload nach Bucket X, max. 5 MB pro Datei, Vorschau und Lösch-Button."

Edge Functions für Server-Logik

Sobald du Server-Logik brauchst (Stripe-Webhook, Mail-Versand mit Secrets, Datenaggregation), führt der Weg über Edge Functions. Sie laufen auf Deno, haben eigene Secrets und werden auf Knopfdruck deployed.

Beispiel-Prompt: „Lege eine Edge Function send-welcome-mail an, die nach erfolgreicher Registrierung über Resend eine Begrüßungsmail verschickt. RESEND_API_KEY als Secret nutzen."

Realtime für Live-Updates

Realtime hängt sich an Postgres-Änderungen und schiebt sie via WebSocket an die UI. Praktisch für Chat, Live-Dashboards oder Benachrichtigungen. In Lovable beschreibst du das Verhalten („Wenn ein neuer Eintrag in messages kommt, soll die Liste sich ohne Reload aktualisieren") und die Anbindung wird erzeugt.

Häufige Stolpersteine

  • Session verschwindet nach Reload. Meist fehltpersistSession: true im Supabase-Client. Lovable den Original-Fehler aus der Konsole nennen.
  • „Permission denied" trotz Login. RLS-Policy stimmt nicht mit dem tatsächlichen Insert überein. In der Regel fehlt dieuser_id beim Insert oder die Policy prüft die falsche Spalte.
  • Mails landen im Spam. Im Free-Plan nutzt Supabase eine generische Absenderadresse. Für produktive Nutzung Custom-SMTP (Resend, Postmark) anbinden.

Wie es weitergeht

Die Anbindung ist die Grundlage für alles weitere. Wenn das Backend steht, lohnt der Blick auf den MVP-Guide und das vollständige Tutorial zur ersten App. Wer noch beim Tool-Vergleich ist, findet die Übersicht im Tool-Artikel.

Häufige Fragen

Praxis statt Theorie

Bau deine eigene App, von der Idee bis zum Launch

Der Builder School Praxis-Guide nimmt dich Schritt für Schritt mit. Sechs Phasen, ehrliche Prompts, Checklisten und Tools.

Weiterlesen