我有一个名为 "A "的数组或列表,其中有文档ID。现在,我想从云firefstore带来的文档,按照他们的文档ID存储在列表 "A "中的顺序。
"whereIn:" 只按照云火库集合中的文档顺序来获取文档,但我想按照列表中提到的顺序来获取。
另外,我使用".getDocuments() "来获取数据,所以,如果有其他有效的方式来获取数据,支持离线,缓存,请告诉我,因为,可能有200到400个文档。
代码。
List A;//Not empty :), contains ordered document ids of the collection
QuerySnapshot snapshot = await someCollectionRef.where('/*somefieldname*/', whereIn: A).getDocuments();
List<Users> users = snapshot.documents.map((doc) => User.fromDocument(doc)).toList();//Here converting that snapshot data into list
Please mention, if there is any other efficient way of fetching data as I am here using ".getDocuments()",which supports offline,caching.As, there may be some 200 to 400 documents.
先谢谢大家的帮助:)
这应该可以达到你想要的目的,只需改变你想在数据文档中进行比较的元素。
querySnapshot.documents.sort((a, b) {
return a.data['id'].compareTo(b.data['id']);
});
在上面的代码中,我正在比较这些文档的ID。