Flutter InstantDB
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;
}

On this page