initReviews function

Future<String?> initReviews()

Implementation

Future<String?> initReviews() async{    // admin panel - all reviews
  try{
    var querySnapshot = await FirebaseFirestore.instance.collection("reviews").get();
    _work(querySnapshot);
    if (reviews.isEmpty)
      _last = DateTime.now();
    else
      _last = reviews[0].timeModify; //timeUtc;

    //
    FirebaseFirestore.instance.collection("reviews").where("timeModify", isGreaterThan: _last)
        .snapshots().listen((querySnapshot) async {
      for (var result in querySnapshot.docs) {
        var _data = result.data();
        // dprint("loadReviews $_data");
        var r = ReviewsData.fromJson(result.id, _data);
        if (!r.delete) {
          for (var item in reviews)
            if (item.id == r.id){
              reviews.remove(item);
              break;
            }
          reviews.add(r);
        }
      }
      addStat("review listen", querySnapshot.docs.length);
      reviews.sort((a, b) => b.time.compareTo(a.time));
      reviews.sort((a, b) => b.timeModify.compareTo(a.timeModify));
      redrawMainWindow();
    });
  }catch(ex){
    return "initReviews " + ex.toString();
  }
  return null;
}