title: Firestore doesn't retrieve more than 600 items
body: <p>I am trying to load some data from Firestore in a Flutter app.
  When I load upto 600 items , it works fine. but even if I try retrieving 700I don't get anything.</p>
  <p>Here is the code:</p>
  <pre><code>Stream&lt;List&lt;Booking&gt;&gt; listenToWeekEntries()  {
      return FirebaseFirestore.instance
          .collection('bookings')
          .orderBy('entryTimestamp')
          .where('entryTimestamp',isGreaterThanOrEqualTo: getWeekFilter()[0]/1000, isLessThanOrEqualTo: getWeekFilter()[1]/1000)
          .limitToLast(1000).snapshots().map((event) =&gt; List.from(event.docs.map((e) =&gt; Booking.fromSnapshot(e))));
            //
  
    }
  </code></pre>
  <p>I only have 1 collection 'bookings' and in it I have about 50000 documents(bookings) (growing at about 120/day). Each booking has about  13 fields. I am trying to create charts representing the counts on  different days, months and years. What's the best way to do this?</p>
  <p>I have tried looking around for a solution but have had not luck.</p>
  <p>I have also tried the following :</p>
  <pre><code>late DocumentSnapshot _lastDocument;
  List&lt;Booking&gt; entries = List.empty(growable: true);
  
  Constructor(){
      getEntries();
  }
  
  void getEntries() async {
      var q = await FirebaseFirestore.instance
          .collection('bookings')
          .orderBy('entryTimestamp')
          .where('entryTimestamp',isGreaterThanOrEqualTo: getWeekFilter()[0]/1000, isLessThanOrEqualTo: getWeekFilter()[1]/1000)
          .limitToLast(50).get();
      entries.addAll(q.docs.map((e) =&gt; Booking.fromSnapshot(e)));
      notifyListeners();
      print('${entries.length}');
      if(entries.length &lt; 2000){
        _lastDocument = q.docs[q.docs.length - 1];
        getMoreEntries();
      }
    }
  
  void getMoreEntries() async {
      print('WEEK_DEBUG | Getting more entries after $_lastDocument.');
      var q = await FirebaseFirestore.instance
          .collection('bookings')
          .orderBy('entryTimestamp')
          .where('entryTimestamp',isGreaterThanOrEqualTo: getWeekFilter()[0]/1000, isLessThanOrEqualTo: getWeekFilter()[1]/1000)
          .startAfterDocument(_lastDocument)
          .limitToLast(50).get();
  
      entries.addAll(q.docs.map((e) =&gt; Booking.fromSnapshot(e)));
      notifyListeners();
      _lastDocument = q.docs[q.docs.length - 1];
      if(entries.length &lt; 2000){
        getMoreEntries();
      }
    }
  
   List getWeekFilter(){
      var now = DateTime.now();
      var firstDay = now.subtract(const Duration(days: 7));
      var lastDay = now.add(const Duration(days: 7));
      var from = DateTime(firstDay.year, firstDay.month, firstDay.day).millisecondsSinceEpoch;
      var to = DateTime(lastDay.year, lastDay.month, lastDay.day).millisecondsSinceEpoch;
      return [from, to];
  
    }
  </code></pre>
  <p>With this, <code>getMoreEntries()</code> does get called however the total length of <code>entries</code> remains 50.</p>
  <p>Any help is greatly appreciated.</p>