fkernal_firebase library
FKernal Firebase Integration
This is an optional module for Firebase/Firestore integration.
Installation
- Add Firebase dependencies to your pubspec.yaml:
dependencies:
cloud_firestore: ^5.0.1
firebase_auth: ^5.1.0
firebase_storage: ^12.0.1
- Import this module instead of the main fkernal:
import 'package:fkernal/fkernal_firebase.dart';
Usage
await FKernal.init(
config: FKernalConfig(
baseUrl: '', // Not used for Firebase
networkClientOverride: FirebaseNetworkClient(),
),
endpoints: firebaseEndpoints,
);
Classes
-
ActionButton<
T> - Simplified action trigger that handles a single action.
- ApiClient
- REST Implementation of INetworkClient using Dio.
- AuthConfig
- Authentication configuration.
- AutoEmptyWidget
- Empty state widget when no data is available.
- AutoErrorWidget
- Default error widget shown when data fetching fails.
- AutoLoadingWidget
- Default loading widget shown during data fetching.
- CacheConfig
- Cache configuration for endpoints.
- CounterLocalState
- Counter state adapter for integer values.
- CounterSlice
- A specialized slice for counters.
- DefaultSecureStorageProvider
- Default FlutterSecureStorage-based secure storage provider.
- Endpoint
- Declarative endpoint definition.
- EndpointRegistry
- Registry for managing endpoint definitions.
- ErrorConfig
- Error behavior configuration.
- ErrorHandler
- Centralized error handler for the framework.
-
Failure<
T> - Failed result containing an error.
- FeatureFlags
- Feature flags for enabling/disabling functionality.
- FetchResourceParams
- Parameters for fetching a resource.
-
FetchResourceUseCase<
T> - Use case for fetching a resource.
- FirebaseNetworkClient
- Firebase Implementation of INetworkClient. Fully utilizes Firestore, Auth, and Storage.
- FKernal
- Main FKernal framework class.
-
FKernalActionBuilder<
T> - Builder widget for performing actions (mutations) on endpoints.
- FKernalApp
- Wrapper widget that provides FKernal services to the widget tree.
-
FKernalBuilder<
T> - Builder widget for consuming resource state from endpoints.
- FKernalConfig
- Main configuration container for FKernal.
- FKernalCounterBuilder
- Builder for CounterSlice.
-
FKernalListBuilder<
T> - Builder for ListSlice.
- FKernalLoadMoreIndicator
- A convenience widget for the load more button/indicator.
-
FKernalLocalBuilder<
T> - Builder widget for consuming local (non-API) state from FKernal.
- FKernalModel
- Interface for models that support validation and serialization.
-
FKernalPaginatedBuilder<
T> - Optional pagination builder for infinite scroll lists.
- FKernalProvider
- Provides access to FKernal state management from the widget tree.
- FKernalToggleBuilder
- Builder for ToggleSlice (booleans).
-
FKernalValueBuilder<
T> - Builder for ValueSlice (simple single values).
- GlobalUIConfig
- Global UI configuration for default builders.
-
HistoryLocalState<
T> - A local state adapter with history/undo support.
- HiveStorageProvider
- Default Hive-based storage provider.
- INetworkClient
- Interface for network clients (REST, GraphQL, gRPC).
- ISecureStorageProvider
- Interface for secure storage.
- IStorageProvider
- Interface for storage providers (Hive, SQLite, etc.).
- KernelEvent
- A kernel event for devtools and logging.
- KernelObserver
- Base class for kernel observers.
-
ListLocalState<
T> - List state adapter for managing lists.
-
ListSlice<
T> - A specialized local slice for lists.
- LocalDataSource
- Interface for local cache operations.
-
LocalSlice<
T> -
LocalStateAdapter<
T> - Abstract interface for local state management.
- LoggingKernelObserver
- Default logger observer.
-
MapLocalState<
K, V> - Map state adapter for managing key-value pairs.
-
MapSlice<
K, V> - A specialized local slice for maps.
- NetworkClientAdapter
- Adapter that bridges INetworkClient to RemoteDataSource.
-
NoParamsUseCase<
ResultType> - Use case that requires no parameters.
- PaginationConfig
- Pagination configuration.
- PerformActionParams
- Parameters for performing an action (mutation).
-
PerformActionUseCase<
T> - Use case for performing actions (POST, PUT, DELETE).
- RemoteDataSource
- Interface for remote data operations.
-
ResourceData<
T> - Data state - data was successfully loaded.
-
ResourceError<
T> - Error state - an error occurred while fetching.
-
ResourceInitial<
T> - Initial state - no fetch has been attempted.
-
ResourceKey<
T> - A type-safe key for accessing resource state.
-
ResourceLoading<
T> - Loading state - data is being fetched.
- ResourceNotifier
- ResourceRepository
- Abstract repository for fetching and managing resources.
- ResourceRepositoryImpl
- Concrete implementation of ResourceRepository.
-
ResourceState<
T> - Represents the state of a resource fetched from an endpoint.
- ResourceStateAdapter
- Abstract interface for managing resource states specifically.
-
Result<
T> - Result type for repository operations.
- ShimmerLoading
- Shimmer loading placeholder for lists.
- StateAdapter
- Abstract interface for state management adapters.
- StateManager
- Central state manager for the application.
- StorageManager
- Manages local storage, caching, and secure storage via swappable providers.
- StorageProviderAdapter
- Adapter that bridges IStorageProvider to LocalDataSource.
- StorageRepository
- Abstract repository for storage operations.
- StorageRepositoryImpl
- Concrete implementation of StorageRepository.
-
StreamUseCase<
Params, ResultType> - Use case that returns a stream.
-
Success<
T> - Successful result containing data.
- ThemeConfig
- Theme configuration for the application.
- ThemeManager
- Manages theming for the application.
- ToggleLocalState
- Toggle state adapter for boolean values.
- ToggleSlice
- A specialized slice for boolean toggles.
-
UseCase<
Params, ResultType> - Base class for use cases.
-
ValueNotifierLocalState<
T> - Built-in ValueNotifier-based local state adapter.
-
ValueSlice<
T> - A specialized local slice for simple value types.
- WatchResourceParams
- Parameters for watching a resource.
-
WatchResourceUseCase<
T> - Use case for watching a resource for real-time updates.
Enums
- Environment
- Environment configuration for the app.
- FKernalErrorType
- Types of errors that can occur in the framework.
- HttpMethod
- HTTP methods supported by the framework.
- KernelEventType
- Types of kernel events for observability.
- KernelHealthStatus
- Status of the FKernal subsystem.
- StateManagementType
- State management type selection.
Extensions
- EnvironmentX on Environment
- Extension methods for Environment.
- FKernalContextExtensions on BuildContext
- Extension methods on BuildContext for accessing FKernal services.
- HttpMethodX on HttpMethod
- Extension methods for HttpMethod.
-
ResultExtension
on Result<
T> - Extension methods for Result type.
Properties
-
endpointRegistryProvider
→ Provider<
EndpointRegistry> -
final
-
errorHandlerProvider
→ Provider<
ErrorHandler> -
final
-
fetchResourceUseCaseProvider
→ Provider<
FetchResourceUseCase> -
Provider factory for FetchResourceUseCase.
final
-
fkernalConfigProvider
→ Provider<
FKernalConfig> -
final
-
localDataSourceProvider
→ Provider<
StorageProviderAdapter?> -
Provider for the LocalDataSource using the existing cache provider.
Returns null if caching is disabled.
final
-
networkClientProvider
→ Provider<
INetworkClient> -
final
-
observersProvider
→ Provider<
List< KernelObserver> > -
final
-
performActionUseCaseProvider
→ Provider<
PerformActionUseCase> -
Provider factory for PerformActionUseCase.
final
-
remoteDataSourceProvider
→ Provider<
NetworkClientAdapter> -
Provider for the RemoteDataSource using the existing network client.
final
-
resourceProvider
→ StateNotifierProviderFamily<
ResourceNotifier, ResourceState, ResourceFamilyKey> -
Family provider for all API resources.
final
-
resourceRepositoryProvider
→ Provider<
ResourceRepository> -
Provider for the ResourceRepository.
final
-
storageManagerProvider
→ Provider<
StorageManager> -
final
-
watchResourceUseCaseProvider
→ Provider<
WatchResourceUseCase> -
Provider factory for WatchResourceUseCase.
final
Functions
-
performAction<
T> (BuildContext context, String endpointId, {dynamic payload, Map< String, String> ? pathParams}) → Future<T> - Triggers an action on an endpoint.
-
refreshResource<
T> (BuildContext context, String endpointId, {Map< String, dynamic> ? params, Map<String, String> ? pathParams}) → Future<T> - Refreshes data for an endpoint.
-
useResource<
T> (BuildContext context, String endpointId, {Map< String, dynamic> ? params, Map<String, String> ? pathParams, bool autoFetch = true}) → ResourceState<T> - A hook-like helper to fetch and subscribe to resource state.
Typedefs
- ErrorCallback = void Function(FKernalError error)
- Callback for error handling.
-
ResourceFamilyKey
= (String, Map<
String, dynamic> ?, Map<String, String> ?) -
ResponseParser<
T> = T Function(dynamic json) - Response parser function type.
Exceptions / Errors
- FKernalError
- Unified error type for the FKernal framework.