Flutter: Fetch data | Supabase Docs (original) (raw)
- Introduction
- Installing
- Initializing
- Upgrade guide
- Database
- Fetch data
- Insert data
- Update data
- Upsert data
- Delete data
- Call a Postgres function
- Using filters
- Column is equal to a value
- Column is not equal to a value
- Column is greater than a value
- Column is greater than or equal to a value
- Column is less than a value
- Column is less than or equal to a value
- Column matches a pattern
- Column matches a case-insensitive pattern
- Column is a value
- Column is in an array
- Column contains every element in a value
- Contained by value
- Greater than a range
- Greater than or equal to a range
- Less than a range
- Less than or equal to a range
- Mutually exclusive to a range
- With a common element
- Match a string
- Match an associated value
- Don't match the filter
- Match at least one filter
- Match the filter
- Using modifiers
- Return data after inserting
- Order the results
- Limit the number of rows returned
- Limit the query to a range
- Retrieve one row of data
- Retrieve zero or one row of data
- Retrieve as a CSV
- Using explain
- Auth
- Create a new user
- Listen to auth events
- Create an anonymous user
- Sign in a user
- Sign in with ID Token
- Sign in a user through OTP
- Sign in a user through OAuth
- Sign in a user through SSO
- Sign out a user
- Verify and log in through OTP
- Retrieve a session
- Retrieve a new session
- Retrieve a user
- Update a user
- Retrieve identities linked to a user
- Link an identity to a user
- Unlink an identity from a user
- Send a password reauthentication nonce
- Resend an OTP
- Set the session data
- Auth MFA
- Enroll a factor
- Create a challenge
- Verify a challenge
- Create and verify a challenge
- Unenroll a factor
- Get Authenticator Assurance Level
- Auth Admin
- Retrieve a user
- List all users
- Create a user
- Delete a user
- Send an email invite link
- Generate an email link
- Update a user
- Edge Functions
- Invokes a Supabase Edge Function.
- Realtime
- Listen to database changes
- Subscribe to channel
- Unsubscribe from a channel
- Unsubscribe from all channels
- Retrieve all channels
- Storage
- Create a bucket
- Retrieve a bucket
- List all buckets
- Update a bucket
- Delete a bucket
- Empty a bucket
- Upload a file
- Download a file
- List all files in a bucket
- Replace an existing file
- Move an existing file
- Delete files in a bucket
- Create a signed URL
- Retrieve public URL
Perform a SELECT query on the table or view.
- By default, Supabase projects will return a maximum of 1,000 rows. This setting can be changed in Project API Settings. It's recommended that you keep it low to limit the payload size of accidental or malicious requests. You can use
range()
queries to paginate through your data. select()
can be combined with Filtersselect()
can be combined with Modifiersapikey
is a reserved keyword if you're using the Supabase Platform and should be avoided as a column name.
Parameters
columns
(Optional)
The columns to retrieve, separated by commas. Columns can be renamed when returned with `customName:columnName`
Examples
Getting your data
final data = await supabase
.from('instruments')
.select();
Selecting specific columns
final data = await supabase
.from('instruments')
.select('''
name
''');
Query referenced tables
final data = await supabase
.from('orchestral_sections')
.select('''
name,
instruments ( name )
''');
Query referenced tables through a join table
final data = await supabase
.from('users')
.select('''
name,
teams (
name
)
''');
Query the same referenced table multiple times
final data = await supabase
.from('messages')
.select('''
content,
from:sender_id(name),
to:receiver_id(name)
''');
Filtering through referenced tables
final data = await supabase
.from('instruments')
.select('name, orchestral_sections(*)')
.eq('orchestral_sections.name', 'percussion');
Querying with count option
final res = await supabase
.from('instruments')
.select('name')
.count(CountOption.exact);
final data = res.data;
final count = res.count;
Querying JSON data
final data = await supabase
.from('users')
.select('''
id, name,
address->city
''');
Querying referenced table with inner join
final data = await supabase
.from('orchestral_sections')
.select('name, instruments!inner(name)')
.eq('orchestral_sections.name', 'strings')
.limit(1);
Switching schemas per query
final data = await supabase
.schema('myschema')
.from('mytable')
.select();