findWorkingSupabaseUrl function

Future<String> findWorkingSupabaseUrl(
  1. List<String> supabaseUrls,
  2. String supabaseAnonKey
)

Implementation

Future<String> findWorkingSupabaseUrl(
  List<String> supabaseUrls,
  String supabaseAnonKey,
) async {
  for (final url in supabaseUrls) {
    final client = SupabaseClient(url, supabaseAnonKey);
    try {
      await client
          .from('app_config')
          .select()
          .eq('id', 'eq.prod')
          .limit(1)
          .maybeSingle()
          .timeout(
            const Duration(seconds: 5),
            onTimeout: () =>
                throw TimeoutException('Connection timeout after 5 seconds'),
          );
      debugPrint("✅ Connected to Supabase at $url");
      return url;
    } catch (e) {
      debugPrint("⚠️ Failed to connect to $url: $e");
    }
  }

  throw Exception("No Supabase URL worked!");
}