loadBlog function

Future<String?> loadBlog(
  1. bool _fromStart
)

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;
}