gbaas_sdk 3.0.0
gbaas_sdk: ^3.0.0 copied to clipboard
Dart SDK for BaaS (Backend as a Service) - auth, database, storage, realtime, functions, admin APIs.
example/main.dart
import 'package:gbaas_sdk/gbaas_sdk.dart';
Future<void> main() async {
final baas = BaasClient(
baseUrl: 'http://localhost:8086',
apiKey: 'baas_sk_replace_me',
);
// Listen for session lifecycle events. Cancel the subscription when done.
final authSub = baas.onAuthStateChange.listen((state) {
print('Auth state: $state');
});
// ============ AUTH ============
try {
final session = await baas.auth.login(
email: 'test@example.com',
password: 'password123',
);
print('Logged in: ${session.user.email}');
} on UnauthorizedException catch (e) {
print('Session rejected by server: ${e.message}');
} on AuthException catch (e) {
if (e.data is Map && (e.data as Map)['mfa_required'] == true) {
print('MFA required; call baas.auth.verifyMfa(...)');
} else {
print('Login failed: ${e.message}');
}
}
// ============ PROFILE ============
try {
final me = await baas.auth.getProfile();
print('Profile: ${me.email} (role=${me.role})');
} on UnauthorizedException {
print('Token expired — re-login required.');
}
// ============ DATABASE (query builder) ============
final admins = await baas
.from('users')
.select()
.eq('role', 'admin')
.orderDesc('created_at')
.limit(10)
.get();
print('Admins: ${admins.length}');
// ============ STORAGE ============
final buckets = await baas.storage.listBuckets();
print('Buckets: ${buckets.map((b) => b.name).join(', ')}');
// ============ CLEANUP ============
await baas.auth.logout();
await authSub.cancel();
baas.dispose();
}