unpinAll method

  1. @override
Future<int> unpinAll(
  1. String by
)
override

Releases every pin held by by, e.g. when an account logs out. Returns the number of blobs that lost a pin.

Implementation

@override
Future<int> unpinAll(String by) => _required.transaction((txn) async {
  var released = 0;
  for (final snapshot in await _meta.find(txn)) {
    final holders = holdersOf(snapshot.value);
    if (!holders.remove(by)) continue;
    await snapshot.ref.put(txn, withHolders(snapshot.value, holders));
    released++;
  }
  return released;
});