API Reference
Types Reference
Complete type definitions and interfaces for Flutter InstantDB
This reference documents the core types and classes used in Flutter InstantDB.
Core Classes
InstantDB
Main database class providing all database operations.
class InstantDB {
String get appId;
InstantConfig get config;
AuthManager get auth;
PresenceManager get presence;
TransactionBuilder get tx;
// Reactive signals
Signal<bool> get isReady;
Signal<bool> get isOnline;
// Initialization
static Future<InstantDB> init({
required String appId,
InstantConfig? config,
InstantSchema? schema,
});
// Query methods
Signal<QueryResult> query(Map<String, dynamic> query, {bool syncedOnly = false});
Future<QueryResult> queryOnce(Map<String, dynamic> query, {bool syncedOnly = false});
// Transaction methods
Future<TransactionResult> transact(dynamic transaction);
// Auth methods
Stream<AuthUser?> subscribeAuth();
// Utilities
String id();
}InstantConfig
Configuration options for database initialization.
class InstantConfig {
const InstantConfig({
this.persistenceDir,
this.syncEnabled = true,
this.baseUrl = 'https://api.instantdb.com',
this.maxCacheSize = 50 * 1024 * 1024,
this.reconnectDelay = const Duration(seconds: 1),
this.verboseLogging = false,
});
final String? persistenceDir;
final bool syncEnabled;
final String baseUrl;
final int maxCacheSize;
final Duration reconnectDelay;
final bool verboseLogging;
}QueryResult
Result returned by query operations.
class QueryResult {
final Map<String, dynamic>? data;
final String? error;
final bool isLoading;
bool get hasData => data != null;
bool get hasError => error != null;
}AuthUser
Represents an authenticated user.
class AuthUser {
final String id;
final String email;
final DateTime createdAt;
final Map<String, dynamic>? metadata;
}TransactionResult
Result returned by transaction operations.
class TransactionResult {
final bool success;
final String? error;
final Map<String, dynamic>? data;
}Presence Types
PresenceData
Represents a user's presence state in a room.
class PresenceData {
final String userId;
final Map<String, dynamic> data;
final DateTime lastSeen;
}CursorData
Represents cursor position and metadata.
class CursorData {
final String userId;
final String? userName;
final String? userColor;
final double x;
final double y;
final Map<String, dynamic>? metadata;
final DateTime lastUpdated;
}ReactionData
Represents a reaction sent to a room.
class ReactionData {
final String id;
final String userId;
final String roomId;
final String emoji;
final Map<String, dynamic>? metadata;
final DateTime timestamp;
}Transaction Internals
Operation
Represents a single database mutation.
class Operation {
final OperationType type;
final String entityType;
final String entityId;
final Map<String, dynamic>? data;
}
enum OperationType {
add,
update,
delete,
merge,
link,
unlink,
retract
}LookupRef
Reference used to look up entities by an attribute other than id.
class LookupRef {
final String entityType;
final String attribute;
final dynamic value;
}TransactionChunk
A wrapper for a list of operations, often generated by the fluent tx API.
class TransactionChunk {
final List<Operation> operations;
}