brick_offline_first_with_supabase 2.0.0 copy "brick_offline_first_with_supabase: ^2.0.0" to clipboard
brick_offline_first_with_supabase: ^2.0.0 copied to clipboard

A Brick domain that routes data fetching through local providers before a Supabase provider.

example/lib/main.dart

// This file is named main for discovery on pub.dev, however, in a real-world
// application it would be lib/brick/repository.dart.

import 'package:brick_offline_first_with_supabase/brick_offline_first_with_supabase.dart';
import 'package:brick_sqlite/brick_sqlite.dart';
import 'package:brick_sqlite/memory_cache_provider.dart';
import 'package:brick_supabase/brick_supabase.dart';
import 'package:sqflite/sqflite.dart' show databaseFactory;
import 'package:supabase/supabase.dart';

// Only relative imports are recognized in this nested package in VSCode.
// You should always use package imports in real-world code.
// ignore: always_use_package_imports
import 'brick/brick.g.dart';
// ignore: always_use_package_imports
import 'brick/db/schema.g.dart';

class MyRepository extends OfflineFirstWithSupabaseRepository {
  static late MyRepository? _singleton;

  MyRepository._({
    required super.supabaseProvider,
    required super.sqliteProvider,
    required super.migrations,
    required super.offlineRequestQueue,
    super.memoryCacheProvider,
  });

  factory MyRepository() => _singleton!;

  static void configure({
    required String supabaseUrl,
    required String supabaseAnonKey,
  }) {
    final (client, queue) = OfflineFirstWithSupabaseRepository.clientQueue(
      // For Flutter, use import 'package:sqflite/sqflite.dart' show databaseFactory;
      // For unit testing (even in Flutter), use import 'package:sqflite_common_ffi/sqflite_ffi.dart' show databaseFactory;
      databaseFactory: databaseFactory,
    );

    final provider = SupabaseProvider(
      SupabaseClient(supabaseUrl, supabaseAnonKey, httpClient: client),
      modelDictionary: supabaseModelDictionary,
    );

    _singleton = MyRepository._(
      supabaseProvider: provider,
      sqliteProvider: SqliteProvider(
        'my_repository.sqlite',
        databaseFactory: databaseFactory,
        modelDictionary: sqliteModelDictionary,
      ),
      migrations: migrations,
      offlineRequestQueue: queue,
      memoryCacheProvider: MemoryCacheProvider(),
    );
  }
}
copied to clipboard
12
likes
150
points
2.98k
downloads

Publisher

unverified uploader

Weekly Downloads

2024.09.05 - 2025.03.20

A Brick domain that routes data fetching through local providers before a Supabase provider.

Homepage
Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

brick_core, brick_offline_first, brick_offline_first_with_rest, brick_sqlite, brick_supabase, http, logging, meta, sqflite_common, supabase

More

Packages that depend on brick_offline_first_with_supabase