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).child(id).onValue.listen((event) {
if (event.snapshot.exists || event.snapshot.value != null) {
controller.add(response.copy(data: build(event.snapshot.value)));
} else {
controller.addError("Data not found!");
}
});
} catch (_) {
controller.addError(_);
}
return controller.stream;
}