loadBlog function
Implementation
Future<String?> loadBlog(bool _fromStart) async{
if (_working)
return null;
_working = true;
if (_fromStart)
_lastDocument = null;
try{
QuerySnapshot<Map<String, dynamic>> querySnapshot;
if (_lastDocument == null){
blog = [];
querySnapshot = await FirebaseFirestore.instance.collection("blog").orderBy('time', descending: true)
.limit(_limit).get();
}else
querySnapshot = await FirebaseFirestore.instance.collection("blog").orderBy('time', descending: true)
.startAfterDocument(_lastDocument!).limit(_limit).get();
addStat("blog", querySnapshot.docs.length);
for (var result in querySnapshot.docs) {
var _data = result.data();
var t = BlogData.fromJson(result.id, _data);
blog.add(t);
}
if (querySnapshot.docs.isNotEmpty) {
_lastDocument = querySnapshot.docs[querySnapshot.docs.length - 1];
dprint("_lastDocument.id = ${_lastDocument!.id}");
}
}catch(ex){
_working = false;
return "loadBlog " + ex.toString();
}
_working = false;
return null;
}