Skip to content

Dart and Flutter SDK

The Dart client in development covers your app’s users, table queries, file storage and functions, for Flutter and for Dart on the server. This page describes that client, so you can plan for it. Until it can be installed, call the REST API with package:http.

import 'package:vaif_client/vaif_client.dart';
Future<void> main() async {
final vaif = VaifClient(projectId: 'YOUR_PROJECT_ID', apiKey: 'vk_pub_...');
await vaif.auth.signIn('ada@example.com', 'a strong password');
final todos = await vaif
.from('todos')
.eq('done', false)
.order('created_at', descending: true)
.limit(20)
.list();
print('${todos.count} ${todos.data}');
vaif.close();
}
  • Auth: signUp, signIn, verifyMfa, getUser, requestPasswordReset, resetPassword and signOut. The access token refreshes itself 30 seconds before it expires.
  • Tables: from(table) with filters, ordering and paging, then reads and writes.
  • Storage and functions: uploads through a signed URL, downloads, signed links, and function calls.
  • Retries: GET, HEAD and OPTIONS requests are retried on 429 and 5xx responses, timeouts and network errors. Writes are never replayed.

Use a publishable vk_pub_ key in apps. A secret vk_srv_ key bypasses row rules and must never ship in an app.