Note
Changes
Core
- Add tag for all logging occurences
GoTrue
- Rename and refactor GoTrue methods and classes (in #337 by @jan-tennert):
- Rename
GoTrueplugin toAuth - Rename
GoTrueConfigtoAuthConfig - Rename
SupabaseClient#gotruetoSupabaseClient#auth - Rename
Auth#loginWithtoAuth#signInWith - Rename
Auth#logouttoAuth#signOut - Rename
LogoutScopetoSignOutScope
- Rename
- Remove
Auth#sendOtpToand add newOTPauth provider (in #350 by @jan-tennert):
supabase.auth.signInWith(OTP) {
email = "example@email.com"
}- Refactor SSO auth to match other auth providers (in #351 by @jan-tennert):
supabase.auth.signInWith(SSO) {
domain = "domain"
}- Rename
AdminUserUpdateBuilder#phoneNumbertoAdminUserUpdateBuilder#phone - Rename
UserUpdateBuilder#phoneNumbertoUserUpdateBuilder#phone - Rename
Phone.Config#phoneNumbertoPhone.Config#phone - Rename
Auth#sendRecoveryEmailtoAuth#resetPasswordForEmailand add PKCE support (in #367 by @jan-tennert) - Rework internal implementation of OAuth & SSO login
- Add support for linking OAuth identities (experimental, untested as unsupported in hosted Supabase): (in #368 by @jan-tennert)
- Add
Auth#linkIdentity(OAuthProvider)- The works the same assignInWith(OAuthProvider)but links an additional OAuth provider to an authenticated user - Add
Auth#unlinkIdentity(identityId) - Add
Auth#currentIdentitiesOrNull
- Add
Realtime
- Refactor and rename Realtime methods (in #349 by @jan-tennert):
- Rename
Realtime#createChanneltoRealtime#channel - Remove
RealtimeChannel#joinand add newRealtimeChannel#subscribemethod, which does the same but also connects to the realtime websocket automatically - Add
Realtime.Config#connectOnSubscribeto disable this behaviour - Rename
RealtimeChannel#leavetoRealtimeChannel#unsubscribe - Add
SupabaseClient#channelextension function delegating toRealtime#channel - Rename
Realtime.Statusto reflect the new methods:UNSUBSCRIBEDSUBSCRIBINGSUBSCRIBEDUNSUBSCRIBING
- Rename
Postgrest
- Rename and refactor Postgrest methods (in #353 by @jan-tennert):
- Remove
upsertparameter ininsertandupdatemethods and add newupsertmethod - Remove
returning,countandsingleparameters from postgrest methods - Rework postgrest methods:
val result = supabase.postgrest["messages"].select {
single() //receive an object rather than an array
count(Count.EXACT) //receive amount of database entries
limit(10) //limit amount of results
range(2, 3) //change range of results
select() //return the data when updating/deleting/upserting (same as settings 'returning' to REPRESENTATION before)
filter {
eq("id", 1)
}
}- Add new methods to this builder:
val result = supabase.postgrest["messages"].select {
csv() //receive data as csv
geojson() //receive data as geojson
explain(/* */) //debug queries
}- Rename
PostgrestResult#counttoPostgrestResult#countOrNull - Reanem
PostgrestResult#rangetoPostgrestResult#rangeOrNull - Add
SupabaseClient#fromdelegating toPostgrest#from - Rename
PostgrestResult#bodytoPostgrestResult#data - Change type of
PostgrestResult#datatoString - Allow destructuring of
PostgrestResult: (especially handy when dealing with datatypes other than json)
val (data, headers) = supabase.from("countries").select {
csv()
}Compose Auth
- Refactor and rename Realtime methods (in #345 by @jan-tennert):
- Rename
ComposeAuth#rememberLoginWithGoogletoComposeAuth#rememberSignInWithGoogle - Rename
ComposeAuth#rememberLoginWithAppletoComposeAuth#rememberSignInWithApple - Rename
ComposeAuth#rememberSignOuttoComposeAuth#rememberSignOutWithGoogle
- Rename
- Re-implement Credential Manager Native Google Auth on Android 14+ (in #336 by @jan-tennert)
New module: Coil Integration
This new plugin can be added to a Coil ImageLoader to easily display images from public and non-public buckets from storage (Android only)
(in #323 by @jan-tennert).
Learn more
New module: Compose-ImageLoader Integration
This new plugin can be added to a ImageLoader to easily display images from public and non-public buckets from storage (All Compose targets) (in #335 by @jan-tennert).
Learn more