Получить записи из Firestore для нумерации страниц - Ionic / Angular - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь в соответствии с документами получить первые 25 записей из Firestore следующим образом.

Примечание: мое требование - выбрать first 25 записи, которые я пытаюсь использовать current25 = documentSnapshots.docs;, это не так возвращаю мне массив из 25 записей.

var first = db.collection("cities")
        .orderBy("population")
        .limit(25);

return first.get().then(function (documentSnapshots) {

// *** I am stuck here as I am not getting the array ***
var current25 = documentSnapshots.docs;
  console.log(current25);
  // Get the last visible document
  var lastVisible = documentSnapshots.docs[documentSnapshots.docs.length-1];
  console.log("last", lastVisible);

  // Construct a new query starting at this document,
  // get the next 25 cities.
  var next = db.collection("cities")
          .orderBy("population")
          .startAfter(lastVisible)
          .limit(25);
});

1 Ответ

1 голос
/ 27 марта 2020

Невозможно вернуть обещание, потому что вы не уделяете достаточно времени обещанию, которое будет выполнено. Чтобы решить вашу проблему, вы должны заставить свои функции asyn c и ожидать обещание получить документы.

async function yourfunction(...){

   var first = db.collection("cities")
        .orderBy("population")
        .limit(25);

   const documentSnapshots = await first.get();


   var current25 = documentSnapshots.docs;
   console.log(current25);
   // Get the last visible document
   var lastVisible = documentSnapshots.docs[documentSnapshots.docs.length-1];
   console.log("last", lastVisible);


   // Construct a new query starting at this document,
   // get the next 25 cities.
   var next = db.collection("cities")
        .orderBy("population")
        .startAfter(lastVisible)
        .limit(25);

   return "What you want to return";
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...