Files
Andrew AgostiniandChris Chinchilla 5e4e519f6c docs: Fix broken URLS batch 3 (#40508)
* docs: remove link to token-transformer since that repo has since been refactored and no particular file contains the code originally linked to

* docs: update Redis link in rate limiting examples to point to the correct URL

* docs: update Supabase URLs to current magic link docs

* docs: update README for postgres-on-the-edge function to remove polyscale line (service no longer exists) and add resource links to relevant deno blog post

* docs: update Open Graph image generation examples links to the new documentation URL

* docs: update README with new Quickstart: Swift guide URL

* docs: update Supabase Vector links to reflect new URL

* docs: add two new link suggestions the replace the current broken one. Choose one.

* docs: update documentation links for Postgres Language Server to reflect new URL

* docs: update event trigger matrix documentation link to compensate for fact that 'current' verb does not work for some of their links

* Update apps/docs/content/troubleshooting/supabase-grafana-memory-charts.mdx

Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>

---------

Co-authored-by: Chris Chinchilla <chris@chrischinchilla.com>
2025-11-28 10:56:17 +00:00
..

Supabase Swift User Management

This repo is a quick sample of how you can get started building apps using Swift and Supabase. You can find a step by step guide of how to build out this app in the Quickstart: Swift guide.

This repo will demonstrate how to:

Supabase User Management example

Getting Started

Run cp .env.example .env and fill in your credentials.

Run the application in a device or simulator using Xcode.

Database Schema

-- Create a table for public "profiles"
create table profiles (
  id uuid references auth.users not null,
  updated_at timestamp with time zone,
  username text unique,
  avatar_url text,
  website text,

  primary key (id),
  unique(username),
  constraint username_length check (char_length(username) >= 3)
);

alter table profiles enable row level security;

create policy "Public profiles are viewable by everyone."
  on profiles for select
  using ( true );

create policy "Users can insert their own profile."
  on profiles for insert
  with check ( (select auth.uid()) = id );

create policy "Users can update own profile."
  on profiles for update
  using ( (select auth.uid()) = id );

-- Set up Realtime!
begin;
  drop publication if exists supabase_realtime;
  create publication supabase_realtime;
commit;
alter publication supabase_realtime add table profiles;

-- Set up Storage!
insert into storage.buckets (id, name)
values ('avatars', 'avatars');

create policy "Avatar images are publicly accessible."
  on storage.objects for select
  using ( bucket_id = 'avatars' );

create policy "Anyone can upload an avatar."
  on storage.objects for insert
  with check ( bucket_id = 'avatars' );