Supabase krok po kroku: pierwsza tabela, zabezpieczenia i połączenie z aplikacją
Samouczek Supabase: projekt, pierwsza tabela, Row Level Security, adres i klucz publiczny, połączenie z aplikacją, logowanie użytkowników i pliki.

👁 118 przeczytań
- Pierwszą tabelę w Supabase, z której czyta aplikacja, można postawić w około kwadrans, korzystając z edytora tabel lub SQL Editor.
- Tabela bez włączonego Row Level Security udostępniona przez API to najczęstsza przyczyna wycieków danych w szybko budowanych aplikacjach.
- Plan darmowy wstrzymuje nieużywane projekty, więc gdy aplikacja ma prawdziwych użytkowników, konieczne jest przejście na plan Pro.
Supabase daje gotowe zaplecze aplikacji: bazę danych, logowanie użytkowników, pliki i automatyczne API, a pierwszą tabelę, z której czyta Twoja aplikacja, postawisz w kwadrans. W tym samouczku idę po kolei od pustego projektu do danych wyświetlanych w aplikacji, z jednym krokiem, którego nie wolno pominąć: zabezpieczeniem tabeli.
Kroki opieram na oficjalnych przewodnikach Supabase. Czym jest sama platforma i dlaczego tak często wybierają ją osoby budujące z AI, opisałem w przewodniku po Supabase.
Zanim zaczniesz: zaplanuj dane
Zanim założysz pierwszą tabelę, zapisz na kartce, jakie dane aplikacja przechowuje i kto może je widzieć. Na przykład: zajęcia widzą wszyscy, rezerwację widzi tylko osoba, która ją zrobiła, i prowadząca. Z takiej notatki od razu wynikają zasady dostępu, które potem wpiszesz w Row Level Security. Planowanie zasad po zbudowaniu aplikacji kończy się zwykle tym, że część tabel zostaje bez nich.
Krok 1. Projekt
Po założeniu konta tworzysz nowy projekt w panelu swojej organizacji. Podajesz nazwę, hasło do bazy danych i region. Hasło zapisz od razu w menedżerze haseł, bo będzie potrzebne przy bezpośrednim łączeniu się z bazą, a region wybierz jak najbliżej użytkowników, dla Polski najbliższy europejski.
Po kilku minutach projekt jest gotowy, a pod spodem działa zwykły PostgreSQL, który w razie przeprowadzki zabierzesz gdziekolwiek.
Krok 2. Pierwsza tabela
Tabelę możesz założyć w edytorze tabel, klikając jak w arkuszu, albo w edytorze SQL. Oficjalny przewodnik pokazuje wersję z SQL Editor: tworzysz prostą tabelę, na przykład listę instrumentów z identyfikatorem i nazwą, i dodajesz kilka przykładowych wierszy. Nawet jeśli nie znasz SQL, polecenia z przewodnika wystarczy skopiować i uruchomić.
Krok 3. Zabezpieczenie tabeli, czyli Row Level Security
To krok, od którego zależy, czy Twoje dane są bezpieczne. Row Level Security to zasady określające, kto może czytać i zmieniać które wiersze. Oficjalny przewodnik włącza ją dla tabeli i dodaje regułę, która pozwala wszystkim tylko czytać listę instrumentów. Dla publicznej listy to w porządku. Dla danych klientów reguła musi pozwalać każdemu widzieć wyłącznie własne wiersze.
Tabela bez tych zasad, udostępniona przez API, to najczęstsza przyczyna wycieków w aplikacjach budowanych szybko. Pisałem o tym szerzej w przewodniku. Zasada jest prosta: żadna tabela z danymi użytkowników nie trafia do aplikacji bez włączonych zasad dostępu.
Krok 4. Adres projektu i klucz publiczny
Aplikacja potrzebuje dwóch rzeczy, które znajdziesz w panelu Connect w projekcie: adresu projektu i klucza publicznego. Wklejasz je do pliku z ustawieniami aplikacji. Klucz publiczny może trafić do przeglądarki, bo o dostępie do danych decydują zasady z poprzedniego kroku.
Jeśli aplikacja nie widzi danych, sprawdź, czy w ustawieniach integracji włączone jest Data API.
Krok 5. Połączenie z aplikacją
Supabase ma gotowe przewodniki dla kilkunastu technologii, od Next.js, Reacta i Vue po Fluttera, Pythona i Laravela. W przypadku Next.js cały start sprowadza się do jednego polecenia tworzącego aplikację z gotowym połączeniem, wklejenia adresu i klucza, a potem napisania strony, która pobiera dane z tabeli. Po uruchomieniu aplikacji widzisz na stronie wiersze dodane w kroku drugim.
Jeśli budujesz w Lovable albo podobnym narzędziu, większość tych kroków wykonuje ono za Ciebie, ale sprawdzenie zasad dostępu nadal należy do Ciebie.
Krok 6. Logowanie i pliki
Gdy tabela działa, kolejne elementy dokładasz tak samo. Logowanie użytkowników włączasz w sekcji uwierzytelniania, wybierając metody, na przykład e-mail albo konto Google. Pliki, jak zdjęcia profilowe czy załączniki, trzymasz w magazynie plików, który także ma własne zasady dostępu. Dla bardziej złożonej logiki są funkcje uruchamiane po stronie serwera.
Najczęstsze błędy na starcie
- Tabela bez zasad dostępu udostępniona w aplikacji.
- Klucz serwisowy w kodzie przeglądarki zamiast klucza publicznego.
- Region na drugim końcu świata, przez co każde zapytanie trwa dłużej.
- Brak kopii zapasowej przed większymi zmianami w strukturze bazy.
Kiedy przejść na plan Pro
Plan darmowy wystarcza do nauki i prototypów, ale nieużywane projekty są na nim wstrzymywane. Gdy aplikacja ma prawdziwych użytkowników, projekt nie może zasypiać, i wtedy plan Pro przestaje być opcją.
Google · Twoje źródłaPromptowy wyżej w Twoim Google - jednym kliknięciemDodaj do preferowanych źródeł →Jak sprawdzić, czy dane są bezpieczne
Po podłączeniu aplikacji zaloguj się jako dwie różne osoby i sprawdź, czy każda widzi tylko swoje dane. To najprostszy test, który wyłapuje najgroźniejsze błędy. Przejrzyj też w panelu listę tabel i upewnij się, że każda udostępniona w API ma włączone zasady dostępu. Supabase ostrzega w panelu przed tabelami bez tych zasad, więc warto tych ostrzeżeń nie ignorować.
Supabase Pro na 12 miesięcy, w formie kredytów na Twoim koncie, sprzedaję w sklepie kinetyka.pl.
Cały tydzień w AI, w jednym mailu
Wybrane premiery, narzędzia i analizy. Raz w tygodniu, prosto do skrzynki.
Zapisz się za darmo →Najczęstsze pytania
Co to jest Row Level Security w Supabase i jak to włączyć?
Row Level Security to zasady określające, kto może czytać i zmieniać które wiersze w tabeli. Włącza się je dla konkretnej tabeli i dodaje reguły - np. pozwalające wszystkim czytać publiczną listę, albo każdemu użytkownikowi widzieć wyłącznie własne wiersze.
Jakich dwóch rzeczy potrzebuje aplikacja, żeby połączyć się z Supabase?
Aplikacja potrzebuje adresu projektu i klucza publicznego, które znajdziesz w panelu Connect w projekcie. Klucz publiczny może trafić do przeglądarki, ponieważ o dostępie do danych decydują zasady Row Level Security.
Dla jakich technologii Supabase ma gotowe przewodniki połączenia?
Supabase ma gotowe przewodniki dla kilkunastu technologii, m.in. Next.js, React, Vue, Flutter, Python i Laravel. W przypadku Next.js start sprowadza się do jednego polecenia tworzącego aplikację z gotowym połączeniem.
Jak sprawdzić, czy dane w Supabase są odpowiednio zabezpieczone?
Należy zalogować się jako dwie różne osoby i sprawdzić, czy każda widzi tylko swoje dane. Dodatkowo w panelu trzeba przejrzeć listę tabel i upewnić się, że każda udostępniona w API ma włączone zasady dostępu - Supabase ostrzega w panelu przed tabelami bez tych zasad.
