live<R> method
Implementation
@override
Stream<Response<T>> live<R>(
String id, {
Map<String, dynamic>? extra,
R? Function(R parent)? source,
}) {
final controller = StreamController<Response<T>>();
final response = Response<T>();
try {
_source(source).doc(id).snapshots().listen((event) {
if (event.exists || event.data() != null) {
controller.add(response.copy(data: build(event.data())));
} else {
controller.addError("Data not found!");
}
});
} catch (_) {
controller.addError(_);
}
return controller.stream;
}