I have a table in Supabase which has reported_location column. I want to listen to inserts in Flutter within a given radius.
I am using the code below but it isn't working.
late RealtimeChannel _violationsListener;
void subscribeToViolations(LatLng userLocation) {
const radius = 10000; // 10 km in meters
final userLocationPoint =
'ST_SetSRID(ST_MakePoint(${userLocation.longitude}, ${userLocation.latitude}), 4326)';
_violationsListener = supabase
.channel('violations-channel')
.onPostgresChanges(
event: PostgresChangeEvent.insert,
schema: 'public',
table: 'violations',
filter: PostgresChangeFilter(
type: PostgresChangeFilterType.lt,
column: 'ST_Distance(reporting_location, $userLocationPoint)',
value: radius.toString(),
),
callback: (payload) async {
final json = payload.newRecord;
debugPrint(
'Printing subscribed message================================');
debugPrint(json.toString());
},
)
.subscribe();
}