close method
Closes the database and every watch stream. Safe to call more than once.
Implementation
@override
Future<void> close() async {
if (_closed) return;
_closed = true;
_snapshotTimer?.cancel();
for (final c in _watchers.values) {
await c.close();
}
_watchers.clear();
await _recoveries.close();
_db?.close();
_db = null;
}