快速开始

在iOS和SwiftUI中使用Supabase

学习如何创建Supabase项目,向数据库添加示例数据,以及从iOS应用中查询数据。


1

创建一个Supabase项目

前往 database.new 并创建一个新的Supabase项目。

当您的项目启动并运行后,前往 表编辑器,创建一个新表并插入一些数据。

或者,您可以在项目的 SQL编辑器 中运行以下代码片段。这将创建一个包含一些示例数据的 instruments 表。

1
2
3
4
5
6
7
8
9
10
11
12
13
-- 创建表create table instruments ( id bigint primary key generated always as identity, name text not null);-- 向表中插入一些示例数据insert into instruments (name)values ('violin'), ('viola'), ('cello');alter table instruments enable row level security;

通过添加RLS策略,使表中的数据可公开读取:

1
2
3
4
create policy "public can read instruments"on public.instrumentsfor select to anonusing (true);
2

使用Xcode创建iOS SwiftUI应用

打开Xcode > 新建项目 > iOS > App。如果已有可运行的应用,可跳过此步骤。

3

安装Supabase客户端库

按照苹果的教程使用Xcode安装Supabase包依赖。

确保将Supabase产品包添加为应用程序的依赖项。

4

初始化Supabase客户端

新建Supabase.swift文件,使用您的项目URL和公共API(anon)密钥创建Supabase实例:

Project URL
Anon key
Supabase.swift
1
2
3
4
5
6
import Supabaselet supabase = SupabaseClient( supabaseURL: URL(string: "YOUR_SUPABASE_URL")!, supabaseKey: "YOUR_SUPABASE_ANON_KEY")
5

创建乐器数据模型

创建一个可解码结构体来反序列化数据库中的数据。

将以下代码添加到名为Instrument.swift的新文件中。

Supabase.swift
1
2
3
4
struct Instrument: Decodable, Identifiable { let id: Int let name: String}
6

从应用查询数据

使用task从数据库获取数据,并通过List显示。

用以下代码替换默认的ContentView

ContentView.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
struct ContentView: View { @State var instruments: [Instrument] = [] var body: some View { List(instruments) { instrument in Text(instrument.name) } .overlay { if instruments.isEmpty { ProgressView() } } .task { do { instruments = try await supabase.from("instruments").select().execute().value } catch { dump(error) } } }}
7

启动应用

在Xcode中按Cmd + R在模拟器或物理设备上运行应用。