Push-Benachrichtigungen für Supabase ohne Edge Functions

Entrig
Ib Entrig Team

Supabase sendet nicht automatisch Push-Benachrichtigungen, wenn etwas in deiner Datenbank passiert. Es gibt kein supabase.notifications.send(). Dafür brauchst du eine Pipeline aus Postgres-Trigger, Edge Function, FCM- und APNs-Zugangsdaten, Geräte-Tokens und Logik für die Empfänger.

Dieser Weg funktioniert und ist gut dokumentiert. Hier erfährst du, was er beinhaltet, und welche verwaltete Alternative es gibt. Für Flutter gibt es die Flutter-Anleitung; englische Anleitungen sind außerdem für React Native, Expo, Capacitor, iOS und Android verfügbar.

Was für Push erforderlich ist

Jeder Push benötigt vier Teile: einen Geräte-Token, einen Speicherort dafür, einen Trigger für den Versandzeitpunkt und einen Zustelldienst, der das Gerät erreicht — FCM auf Android und APNs auf iOS. Dieser Beitrag verbindet diese Teile mit Supabase.

Der Eigenbau-Weg

Ohne Tool bedeutet schon ein Benachrichtigungstyp in einer Supabase-App:

  1. Geräte-Tokens speichern und sie beim An- und Abmelden registrieren bzw. entfernen.
  2. Einen Postgres-Trigger schreiben — etwa AFTER INSERT oder AFTER UPDATE — auf der betreffenden Tabelle.
  3. Aus dem Trigger eine Edge Function aufrufen, meist über pg_net oder einen Datenbank-Webhook, da Postgres FCM und APNs nicht direkt aufrufen kann.
  4. Empfänger in der Edge Function bestimmen: ein Nutzer, viele Nutzer über einen Join oder alle Nutzer. SQL- oder JS-Logik ist pro Benachrichtigung verschieden.
  5. FCM und APNs aufrufen, Payloads formatieren sowie Fehler, abgelaufene Tokens und Wiederholungen behandeln.
  6. Schritte 2 bis 5 wiederholen — für jeden neuen Typ und jede Plattform.

Die einzelnen Aufgaben sind nicht kompliziert. Der Wartungsaufwand entsteht durch die Summe aus neuer Edge Function und neuer Empfängerabfrage für jede Benachrichtigung. Dafür liegt alles in deiner eigenen Infrastruktur und deinen Migrationen.

Der verwaltete Weg

Entrig ersetzt die Schritte 2 bis 5 durch Konfiguration. Eine Benachrichtigung hat drei Bestandteile:

  • Trigger: Tabelle und Ereignis (INSERT, UPDATE, DELETE) mit optionaler Bedingung.
  • Users: Empfänger über Direct (Fremdschlüssel zu einem Nutzer), Indirect via Join Table (Verteilung durch Join-Tabelle) oder Broadcast (alle Nutzer, optional gefiltert).
  • Message: Titel, Text und Payload-Felder mit {{placeholders}} aus der auslösenden Zeile.

Beim Speichern erzeugt und installiert Entrig den Postgres-Trigger und die Funktion im Supabase-Projekt. Eine eigene Edge Function musst du weder schreiben noch deployen. Der Client-SDK wird mit einem API-Schlüssel initialisiert und registriert Geräte zur Nutzer-ID; die Zustellung an FCM und APNs übernimmt Entrig.

Was trotzdem nötig bleibt

Ein verwalteter Dienst ersetzt keine Plattform-Anforderungen. In beiden Varianten musst du:

  • ein Firebase-Projekt und das Service-Account-JSON für Android erstellen,
  • einen APNs-Authentifizierungsschlüssel für natives iOS beziehen,
  • Push-Capability und Background Modes im iOS-Projekt aktivieren,
  • die Berechtigung anfordern und Taps sowie Deeplinks behandeln,
  • eine Datenbank-Nutzer-ID führen, die der registrierten Geräte-ID entspricht.

Eigenbau vs. Entrig

EigenbauEntrig
Neuer BenachrichtigungstypNeues SQL, Empfängerabfrage, Edge-Function-Logik, DeploymentIm Dashboard konfiguriert und beim Speichern aktiv
Trigger-InstallationVon dir geschrieben und migriertBeim Speichern generiert und installiert
BackendEigene Function bzw. ServerKeines von dir; Entrig betreibt die Zustellung
Geräte-TokensSpeichern, erneuern und bereinigenSDK registriert sie; abgelehnte Tokens werden ungültig
WiederholungenFCM/APNs-Logik selbst schreibenTemporäre Fehler werden automatisch wiederholt

Anleitungen nach Plattform

Alle Anleitungen bauen denselben Gruppenchat und dieselben drei Benachrichtigungen: neuer Teilnehmer, neue Nachricht und neue Gruppe.

Frequently asked questions

Hat Supabase eingebaute Push-Benachrichtigungen?

Nein. Supabase besitzt keinen integrierten Push-Dienst und keine supabase.notifications.send()-Funktion. Du verbindest einen Postgres-Trigger mit einer Edge Function für FCM und APNs oder verwendest einen verwalteten Dienst wie Entrig.

Kann ich Supabase-Push ohne eigene Edge Function senden?

Ja. Entrig erstellt und installiert Postgres-Trigger und -Funktion im Supabase-Projekt und übernimmt die Zustellung. Du konfigurierst die Benachrichtigung im Dashboard, statt eine eigene Edge Function zu schreiben und bereitzustellen.

Welche Plattformen werden unterstützt?

Flutter, React Native, Expo, Capacitor, natives iOS und natives Android — jeweils mit SDK und Schritt-für-Schritt-Anleitung.