所以基本上我想将两个查询的结果添加到一个查询中(删除重复项)然后显示。我该怎么做?
Future<QuerySnapshot> allUsersProfile = usersReference.where("searchName", isGreaterThanOrEqualTo: str.toLowerCase().replaceAll(' ', '')).limit(5).get();
Future<QuerySnapshot> allSameUsersProfile = usersReference.where("searchName", isEqualTo: str.toLowerCase().replaceAll(' ', '')).limit(5).get();
Future<QuerySnapshot> futureSearchResults;
displayUsersFoundScreen(){
return FutureBuilder(
future: futureSearchResults,
builder: (context, dataSnapshot){
我只想将两者的结果存储到 futureSearchResults 中,因为我使用 Future Builder 来显示结果。
任何人都可以帮助我吗?提前致谢。
在这种情况下可以使用 Future.wait 方法。构建器回调将等待所有 future 的解析以及列表中的结果。
FutureBuilder(
future: Future.wait([
allUsersProfile(),
allSameUsersProfile(),
]),
builder: (
context,
AsyncSnapshot<List<QuerySnapshot>> snapshot,
){
// ...
}
);
如果要合并文档属性,另一个选择是实现 futureSearchResults 函数,该函数将调用 futures 并应用转换。
Future<QuerySnapshot> futureSearchResults() async {
final future1 = await allUsersProfile();
final future2 = await allSameUsersProfile();
future1.data.documents.add(future2.data.documents);
return future1;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)