core library

The widget-free SDK surface, for Dart CLIs and tools.

package:flutterflow_cloud/flutterflow_cloud.dart additionally exports Flutter widgets (FFXImage) and therefore drags in dart:ui; import this library instead from anything that runs on the plain Dart VM (seed scripts, provisioning tools, servers).

Store purchases (cloud.purchases) are a library of their own, package:flutterflow_cloud/purchases.dart, which neither barrel exports.

Classes

BatchCreateOperation
BatchCreateResult
BatchDeleteOperation
BatchDeleteResult
BatchOperation
BatchRequest
BatchResponse
BatchResult
BatchUpdateOperation
BatchUpdateResult
FFXAggregateResult
One aggregate query result row: alias → numeric value.
FFXAppClaimResult
The durable assignment of one delegated, project-wide custom claim.
FFXAuth
Auth surface (14 §6): email/password + guest sign-in and self-managing sessions.
FFXBatchOperationBuilder
FFXCacheConfig
Cache tuning for FlutterFlowCloud.initialize.
FFXCollection
Collections addressed by config model-name string (14 §4).
FFXConnectors
Connectors surface: calls a third-party service (Slack, Resend, …) through the platform, which holds the credential.
FFXDatabase
The database entry points (14 §4–5).
FFXFieldValue
Atomic numeric field transforms for update patches and batch updates.
FFXFile
A file record (14 §7).
FFXFunctionCallMetadata
Response identity: the invocation, release, revision and config that answered, each null when the response did not carry it.
FFXFunctionCallOptions
Controls one call, which runs its function at most once: the SDK never resends a request that may have started it. Cancelling or timing out cannot undo effects that already started.
FFXFunctions
Callable transport. Project generation adds typed methods to this instance.
FFXGeoPoint
A latitude/longitude pair — the wire shape of config geopoint fields.
FFXGoogleSignInBrowser
A system-browser port. The browser returns the final app URL, never a Google token.
FFXOptions
Connection settings for one FlutterFlow Cloud project environment.
FFXPersistedSession
A persisted session: the token triple plus the last-known user snapshot.
FFXQuery
A named list query (14 §5).
FFXQueryMetadata
Honest per-response metadata. There is no fictional offline machinery here: isFromCache is true only when the page was actually served from the SDK's query cache, and receivedAt is when the page was originally fetched from the network (so a cached page reports its original fetch time, not "now").
FFXQueryPage<T>
FFXRealtime
One lazy socket per app; all subscriptions reconcile strongly consistent first pages.
FFXRecord
The untyped record core (14 §3.1): raw wire JSON + typed system accessors.
FFXRetryPolicy
The shared retry engine (14 §11); numbers are identical to the TS SDK.
FFXSessionStorage
FFXStorage
Storage surface (14 §7): uploads with progress, cached signed download URLs, and file-record reads/updates/deletes.
FFXTypedCollection<T>
FFXTypedQuery<T>
FFXUploadProgress
Progress of an in-flight upload.
FFXUploadTask
An in-flight upload: awaitable like a Future<FFXFile>, with progress and cancel.
FFXUser
An end user (14 §6): the signed-in person from auth, or an endUser record row from a named query, record read or watch.
FlutterFlowCloud
The FlutterFlow Cloud client (14 §2): explicit initialization, one line in main, everything else self-contained — session persistence and restore, token refresh, query caching, retries.
QuerySnapshot<T>
RecordAdded<T>
RecordChange<T>
RecordDocument
System fields plus the model’s declared fields as raw wire JSON.
RecordModified<T>
RecordRemoved<T>
WireValue<T>
A present optional wire member, including an explicit null value. Leave the containing field null to omit it; use WireValue(null) to clear it.

Enums

FFXConnectionState
FFXFetchPolicy
How a query read consults the cache.
FFXSignOutScope
Which sessions FFXAuth.signOut revokes.

Constants

ffxBatchOperation → const FFXBatchOperationBuilder
Builders mirroring the TS SDK's ffxBatchOperation helpers: typed batch operations addressed by collection (config model-name string).

Functions

newIdempotencyKey() → String
Fresh ULID for one logical mutation (18 §8).

Typedefs

FFXWebSocketConnector = Future<WebSocket> Function(Uri uri, {Iterable<String>? protocols})
Opens a realtime connection; injectable for tests and custom transports.

Exceptions / Errors

FFXApiError
FFXAuthenticationError
FFXCancelledError
Thrown by FFXUploadTask when the caller cancels an in-flight upload.
FFXConfigVersionRetiredError
FFXConflictError
FFXFunctionCancelledError
Cancellation cannot undo a function's external effects.
FFXFunctionDeadlineError
The client stopped waiting at the call's deadline; the function may have run.
FFXFunctionError
A function's public application/runtime outcome, retained in the normal platform problem envelope. The SDK never calls the function again on its own: another call is a new invocation, and the app decides whether to make it.
FFXFunctionTransportError
No valid answer arrived: the connection failed, the body broke off or the response was neither a result nor a problem. The request may have reached the platform, so the function may have run; the SDK does not send it again.
FFXInsufficientCreditsError
A write whose rule spends credits (spend("…", n), 05 §3.4) needs more than the end user has: nothing was written or spent. Offer a pack, then send the same request again.
FFXInternalError
FFXNetworkError
FFXNotFoundError
FFXPermissionDeniedError
FFXQuotaExceededError
FFXRateLimitedError
FFXRequestTooLargeError
FFXServiceUnavailableError
FFXTimeoutError
FFXUnknownError
FFXValidationError
FFXVersionConflictError