supabase-flutter专注于改善开发者的体验,使其更容易使用。本指南将帮助你从supabase-flutter v0升级到v1。

升级客户端库

更新你的pubspec.yaml文件中的软件包。

  supabase_flutter: ^1.0.0
  

错误处理

supabase-flutter抛出错误的方式在v1中有所改变。在v1中,错误是以异常形式抛出的。这使得作为Flutter开发者处理错误时更加直观。

Auth类/方法

SupabaseAuthStateSupabaseAuthRequiredState类的用法

在v0中,SupabaseAuthStateSupabaseAuthRequiredState是用来处理自动令牌刷新和监听认证状态变化的。在v1版本中,SupabaseAuthStateSupabaseAuthRequiredState被弃用,令牌刷新将通过初始化Supabase自动发生。onAuthStateChange可以用来对auth状态的变化采取行动。

倾听认证状态的变化

onAuthStateChange现在返回一个Stream

用电子邮件和密码登录

signIn()方法已被废弃,转而采用更明确的方法签名来帮助类型提示。以前,开发者很难知道他们错过了什么(例如,很多开发者没有意识到他们可以使用无密码的magic links)。

用 magic link登录

用第三方OAuth提供商登录

用手机登录

使用OTP用手机登录

重置电子邮件的密码

获取用户的当前会话

获取登录的用户

更新已登录用户的用户数据

数据方法

.insert()/.upsert()/.update()/.delete()默认不会返回记录。

以前,这些方法默认返回插入/更新/删除的行(这引起了一些混乱),你可以通过指定returning: 'minimal'来选择不返回它。现在的默认行为是不返回记录。要返回插入/更新/删除的行,在最后添加一个.select()的调用。

另外,在查询结束时调用.execute()是v0中的一个要求,但在v1中.execute已经过时了。

插入而不返回插入的数据

插入,并返回插入的数据

##实时方法

Stream

.stream()不再需要最后的.execute()。另外,通过eq过滤现在变得容易多了。primaryKey现在是一个命名的参数,以使它更明显地传递什么。

Subscribe

Unsubscribe