onPostgresChanges method
RealtimeChannel
onPostgresChanges({
- required PostgresChangeEvent event,
- String? schema,
- String? table,
- PostgresChangeFilter? filter,
- required void callback(
- PostgresChangePayload payload
Sets up a listener on your Supabase database.
event
determines whether you listen to insert
, update
, delete
, or all of the events.
schema
is the schema of the database on which to set up the listener.
The listener will return all changes from every listenable schema if omitted.
table
is the table of the database on which to setup the listener.
The listener will return all changes from every listenable table if omitted.
filter
can be used to further control which rows to listen to within the given schema
and table
.
supabase.channel('my_channel').onPostgresChanges(
event: PostgresChangeEvent.all,
schema: 'public',
table: 'messages',
filter: PostgresChangeFilter(
type: PostgresChangeFilterType.eq,
column: 'room_id',
value: 200,
),
callback: (payload) {
print(payload);
}).subscribe();
Implementation
RealtimeChannel onPostgresChanges({
required PostgresChangeEvent event,
String? schema,
String? table,
PostgresChangeFilter? filter,
required void Function(PostgresChangePayload payload) callback,
}) {
return onEvents(
'postgres_changes',
ChannelFilter(
event: event.toRealtimeEvent(),
schema: schema,
table: table,
filter: filter?.toString(),
),
(payload, [ref]) => callback(PostgresChangePayload.fromPayload(payload)),
);
}