save method

  1. @override
Future<void> save()
override

Add/Update an element of document.

Implementation

@override
Future<void> save() async {
  try {
    final updated = <String, DynamicMap>{};
    final doc = await LocalDatabase._db.loadDocument(
          LocalStoreDocumentQuery(path: documentPath),
        ) ??
        <String, dynamic>{};
    doc.addAll(_additionalData);
    doc[Const.uid] = documentPath.split("/").last;
    doc[Const.time] = DateTime.now().millisecondsSinceEpoch;
    updated[documentPath] = _buildCounterUpdate(
      map: doc,
      key: _counterKey,
      value: _counterValue,
      enabled: _enableCounter,
      counterIntervals: _counterIntervals ?? [],
    );
    for (final tmp in updated.entries) {
      await LocalDatabase._db.saveDocument(
        LocalStoreDocumentQuery(
          path: tmp.key,
        ),
        tmp.value,
      );
    }
  } catch (e) {
    print(e.toString());
    rethrow;
  }
}