Przejdź do treści
Sklep

Artykuły

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.

Tekst: 4 min czytania
Supabase krok po kroku: pierwsza tabela, zabezpieczenia i połączenie z aplikacją
Spis treści 10
  1. Zanim zaczniesz: zaplanuj dane
  2. Krok 1. Projekt
  3. Krok 2. Pierwsza tabela
  4. Krok 3. Zabezpieczenie tabeli, czyli Row Level Security
  5. Krok 4. Adres projektu i klucz publiczny
  6. Krok 5. Połączenie z aplikacją
  7. Krok 6. Logowanie i pliki
  8. Najczęstsze błędy na starcie
  9. Kiedy przejść na plan Pro
  10. Jak sprawdzić, czy dane są bezpieczne

👁 170 przeczytań

w skrócie
  • 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ą.

Czytasz Promptowego częściej? Dodaj go do preferowanych źródeł w Google, a nowe teksty będą wyżej w Twoich wynikach.

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.

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.

Piotr Olszewski

Autor

Twórca i autor Promptowego, polskiego serwisu o sztucznej inteligencji. Codziennie śledzi premiery modeli, narzędzia i regulacje AI, i tłumaczy je prostym, konkretnym językiem.

O mnie →Wszystkie teksty →

Czytaj dalej

Narzędzia do tego tematu

darmowe, bez kontaWszystkie 29 →
z sieci - nowe teksty w moich serwisach

Wszystkie moje projekty →

Najczęściej czytane

7 dni
  1. 1Claude Fable 5.2 czy Opus 5.5: kiedy dopłata 2 razy ma sens, a kiedy to wyrzucone pieniądze
  2. 2Plakat festiwalu z polskim napisem: prompt i test 6 generatorów obrazu (Prompt dnia 14.11)
  3. 330 promptów do ChatGPT Images i 10 do przerabiania zdjęć
🛒 Sklep Kinetyka CapCut Pro 460 zł/rok Lovable Pro 450 zł/rok Replit Core 119 zł/rok Zobacz wszystko →