run method

Future<void> run(
  1. Future<void> handler(
    1. FSTransactionHandler transaction
    ), {
  2. int maxAttempts = 5,
  3. Duration timeout = const Duration(seconds: 30),
})

Runs a transaction in Firestore.

Implementation

Future<void> run(Future<void> Function(FSTransactionHandler transaction) handler,
    {int maxAttempts = 5, Duration timeout = const Duration(seconds: 30)}) async {
  await FS.instance.runTransaction((tx) async {
    final inliner = FSTransactionInliner(handler);
    inliner.create = FSTransactionCreateDelegate.init(tx);
    inliner.get = FSTransactionGetDelegate.init(tx);
    inliner.update = FSTransactionUpdateDelegate.init(tx);
    inliner.delete = FSTransactionDeleteDelegate.init(tx);
    await inliner.handleTransaction();
  }, maxAttempts: maxAttempts, timeout: timeout);
}