lives<R> method
Stream<Response<T>>
lives<
R>({ - bool onlyUpdatedData = false,
- R? source(
- R parent
)?,
})
override
Implementation
@override
Stream<Response<T>> lives<R>({
bool onlyUpdatedData = false,
Map<String, dynamic>? extra,
R? Function(R parent)? source,
}) {
final controller = StreamController<Response<T>>();
final response = Response<T>();
try {
_source(source).snapshots().listen((event) {
if (event.docs.isNotEmpty || event.docChanges.isNotEmpty) {
if (onlyUpdatedData) {
List<T> list = event.docChanges.map((e) {
return build(e.doc.data());
}).toList();
controller.add(response.copy(result: list));
} else {
List<T> list = event.docs.map((e) {
return build(e.data());
}).toList();
controller.add(response.copy(result: list));
}
} else {
controller.addError("Data not found!");
}
});
} catch (_) {
controller.addError(_);
}
return controller.stream;
}