Ofc, я знаю, как мы извлекаем целую кучу документов из коллекции, например:
stream: Firestore.instance
.collection("collection_name")
.orderBy("date", descending: true) // new entries first
.snapshots(),
builder: (context, snapshot) { ....
Это нормально, когда я отображаю целую кучу данных.
Но у меня есть ситуация, когда мне нужно выполнить некоторые вычисления с последними добавленными числами, то есть мне просто нужно получить 1 документ, поэтому я сортирую данные по дате и ограничиваю 1, а затем делаю запрос для этого один такой документ
List<DocumentSnapshot> list;
QuerySnapshot querySnapshots;
if (await AuthHelper.checkIfUserIsLoggedIn()) {
String userId = await AuthHelper.getUserID();
querySnapshots = await Firestore.instance
.collection("collection_name")
.orderBy("date", descending: true) // new entries first, date is one the entries btw
.limit(1)
.getDocuments(); // Get Documents not as a stream
list = querySnapshots.documents; // Make snapshots into a list
return (list ?? null);
} else {
return null;
}
Но это лучший способ сделать это? Когда я делаю этот запрос, я не получаю весь комплект документов и не отбрасываю остальные? Что означает, что когда эта коллекция растет, она будет становиться все медленнее и медленнее?
Есть ли лучший способ получить последний добавленный документ? Так что я могу использовать его как список / массив / карту, а не как поток?
Спасибо.