У меня есть повторяющиеся данные каждый раз, когда я выполняю прокрутку, чтобы получить новые данные, это прекрасно работает, если я выполняю только одну прокрутку в конце документа, но получаю дубликат, когда я выполняю прокрутку более одного раза в конце. Я предполагаю, что мои пользователи могут прокручивать несколько раз, если данные не загружаются вовремя
Future<List<DocumentSnapshot>> getMoreSearchDocuments(lastDocument) async{
querySnapshot = await Firestore.instance.collection('val').orderBy('dateCreated', descending:true)
.startAfterDocument(lastDocument).limit(documentLimit).getDocuments();
return querySnapshot.documents;
}
void _scrollListener() async{
if(_scrollController.offset >=
_scrollController.position.maxScrollExtent &&
!_scrollController.position.outOfRange) {
DocumentSnapshot lastDocument = widget.searchDocuments[widget.searchDocuments.length - 1];
setState((){
isLoading = true ;
print('You are at the end of the document');
});
await api.getMoreSearchDocuments(lastDocument)
.then((documentSnapshots){
setState(() {
widget.searchDocuments.addAll(documentSnapshots);
isLoading = false;
});
})
.catchError((e) {
print(e);
});
}
}
@override
void initState() {
_scrollController.addListener(_scrollListener);
super.initState();
}
SafeArea(
child: CustomScrollView(
controller: _scrollController,
slivers: <Widget>[
SliverAppBar(
title: Text('Rx finder'),
actions: <Widget>[
IconButton(
icon: Icon(Icons.search),
onPressed: () =>
showSearch(context: context, delegate: SearchListings()),
....................
My Console Date which indicate the data is being fetched twice
I/flutter (25676): You are at the end of the document
I/flutter (25676): Second list
D/ViewRootImpl(25676): ViewPostImeInputStage processPointer 0
I/flutter (25676): You are at the end of the document
I/flutter (25676): Second list