cbl_dart 3.0.0 copy "cbl_dart: ^3.0.0" to clipboard
cbl_dart: ^3.0.0 copied to clipboard

Couchbase Lite for pure Dart apps: An embedded, NoSQL JSON Document Style database, supporting Blobs, Encryption, SQL++ Queries, Live Queries, Full-Text Search and Data Sync.

example/lib/main.dart

// ignore_for_file: avoid_print

import 'dart:io';

import 'package:cbl/cbl.dart';
import 'package:cbl_dart/cbl_dart.dart';

late final Database db;
late final Collection collection;

Future<void> main(List<String> args) async {
  if (args.contains('--help') ||
      args.contains('-h') ||
      (args.isNotEmpty && args.length != 1)) {
    print(
      '''
Usage: dart lib/main.dart [message]

The provided message will be stored in the database.

If no message is provided, all stored messages will be listed.
''',
    );
    exit(1);
  }

  await CouchbaseLiteDart.init(edition: Edition.community);

  db = await Database.openAsync('db');
  collection = await db.createCollection('messages');

  final message = args.isEmpty ? null : args[0];

  if (message != null) {
    await storeMessage(message);
  } else {
    await listMessages();
  }

  await db.close();
}

Future<void> storeMessage(String message) async {
  final doc = MutableDocument({
    'type': 'message',
    'createdAt': DateTime.now(),
    'body': message,
  });

  await collection.saveDocument(doc);

  print('Message ${doc.id} stored: ${doc.toJson()}');
}

Future<void> listMessages() async {
  final query = const QueryBuilder()
      .select(
        SelectResult.expression(Meta.id),
        SelectResult.property('createdAt'),
        SelectResult.property('body'),
      )
      .from(DataSource.collection(collection))
      .where(Expression.property('type').equalTo(
        Expression.string('message'),
      ))
      .orderBy(Ordering.property('createdAt').descending());

  final resultSet = await query.execute();
  var messages = 0;

  await for (final result in resultSet.asStream()) {
    messages++;
    print(result.toJson());
  }

  print('$messages messages found');
}
7
likes
140
pub points
85%
popularity

Publisher

verified publishercbl-dart.dev

Couchbase Lite for pure Dart apps: An embedded, NoSQL JSON Document Style database, supporting Blobs, Encryption, SQL++ Queries, Live Queries, Full-Text Search and Data Sync.

Homepage
Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

Apache-2.0 (LICENSE)

Dependencies

archive, cbl, cbl_libcblite_api, cbl_libcblitedart_api, crypto, http, logging, path

More

Packages that depend on cbl_dart