在 Flutter 中监听用户位置半径范围内的 supabase 中的表插入

问题描述 投票:0回答:1

我在 Supabase 中有一个表,其中包含 reports_location 列。我想听 Flutter 中给定半径内的插入。

我正在使用下面的代码,但它不起作用。

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();
}
supabase supabase-flutter supabase-realtime
1个回答
0
投票

目前使用 Supabase Realtime 无法实现这一点。您可以使用 API 方法对数据库进行轮询以执行类似的操作。

© www.soinside.com 2019 - 2024. All rights reserved.