如何使用 Firebase 在 Flutter 中使用 Future Builder 将两个 Future 的结果合并为一个 Future

2024-02-27

所以基本上我想将两个查询的结果添加到一个查询中(删除重复项)然后显示。我该怎么做?

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(使用前将#替换为@)

如何使用 Firebase 在 Flutter 中使用 Future Builder 将两个 Future 的结果合并为一个 Future 的相关文章

随机推荐

  • 为 Windows 制作热键最简单的方法是什么?

    For example you push Ctrl V and insert the buffer content into the window How can I create my own hotkeys like that Sorr
  • 在 C#/.NET 中将参数标记为不可为空?

    是否有一个简单的属性或数据契约可以分配给函数参数来阻止null从 C NET 中传递 理想情况下 这也会在编译时进行检查以确保文字null没有在任何地方使用它并且在运行时抛出ArgumentNullException 目前我写的东西像 if
  • Cocos2d for android 支持不同分辨率

    我正在尝试构建一款游戏 并且想知道如何支持不同的分辨率和屏幕尺寸 对于精灵的位置 我实现了一个基本函数 它根据一定的比例设置位置 这是通过从sharedDirector的winSize方法获取屏幕宽度和高度获得的 但这种方法没有经过测试 因
  • 使用 std::fill 用递增的数字填充向量

    我想填写一个vector
  • git status --ignored 无限期挂起

    tl dr 跑步git status ignored在我的项目的根永远不会完成 git status工作正常 我开始从我的 IDE PhpStorm 中看到此问题的症状 尽管此问题适用于所有 IntelliJ IDE 没有与 git 相关的
  • 如何在 TreeTable 的第二列中显示树线

    我正在使用 TreeTable com jidesoft grid 请参阅树表 http www jidesoft com javadoc com jidesoft grid TreeTable html 来显示分层数据 它在第一列上使用特
  • typedef 和模板参数同名

    为什么这种情况不正确 这是合乎逻辑的 template
  • Python物理库? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有适用于 Linux 的 Python 的最新物理库 我刚刚开始使用 PyGame 来学习 Pyt
  • 您如何处理 C# 的新功能,以免它们导致编写出糟糕的代码?

    C 3 0 中引入了许多让我感到不安的功能 例如对象初始值设定项 扩展方法和隐式类型变量 现在 在 C 4 0 中 像动态关键字这样的东西我变得更加担心 我知道这些功能中的每一个CAN以适当的方式使用BUT在我看来 它们使开发人员更容易做出
  • 如何从我的应用程序将信用卡添加到 Google Pay?

    我正在开发移动银行应用程序 显然它管理我们的银行信用卡 所以现在我需要在我的应用程序中实现 将此卡添加到 Google Pay 按钮 但如何为此执行 Google Pay API 请求 我无法找到任何相关文档 这这里只有一个关于 SO 的问
  • 如何知道用户是否已付费订阅

    我正在看这个tutorial https www patchesoft com paypal api subscription php创建我自己的贝宝订阅网关 我以前从未对 API 如此困惑和迷失过 因此 当我们创建计划时 我们会设置商家偏
  • 相同的元组给出不同的泡菜

    这种情况很奇怪 我希望有一些关于 pickle 模块的东西我不知道 我有两个元组s1 and s2 如果我比较它们它会返回True s1 s2 True 如果我腌制它们并比较结果 它会返回False pickle dumps s1 pick
  • Kendo UI 工具提示显示,访问目标?

    可以通过传递参数来访问目标e到匿名函数获取内容 gridToolTipz grid kendoTooltip filter td role gridcell content function e var target e target th
  • SOAP 和 REST 如何与 XML/JSON 响应配合使用?

    这是一个在堆栈溢出时一次又一次被问到的非常常见的问题 我读了很多关于这个问题的答案 但我仍然有点困惑 我需要从 iPhone sdk 调用网络服务 这是我的问题 我不清楚 SOAP 或 REST 返回什么响应 是否有什么具体说明 如果响应是
  • 是否有布尔值的后赋值运算符?

    你好 Java 中可能有这样的事情吗 boolean flag true if flag return flag false return true and assign false to flag afterwards 澄清 上面的方法有
  • 在 redshift postgresql 中我可以使用复制功能跳过列吗

    我有一个 csv 表 t1 其中包含以下列 亚马逊 S3 存储中的 c1 c2 c3 我想将其复制到亚马逊红移中 我创建包含以下列的表 c1 c2 c3 其中所有列均可为空 我用命令复制 复制 t1a c1 c3 从 t1 我预计它会从 t
  • 本地网络上的 WebRTC? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我一直在阅读有关 WebRTC 的内容 它看起来非常有前途 我想制作一个简单的局域网游戏 自动连接同一网络上的人们 尽管我可以找到人们
  • 此电子邮件验证正则表达式中不可打印控制字符的用途是什么?

    背景资料 我们使用 SonarQube 来获取有关代码库的质量指标 根据规则 SonarQube 在我们的 Node js 代码库中标记了十多个错误S6324 https rules sonarsource com javascript R
  • 多线程Python请求[重复]

    这个问题在这里已经有答案了 对于我的学士论文 我需要从大约 40000 个网站中获取一些数据 因此 我使用 python 请求 但目前从服务器获取响应非常慢 有没有办法加快速度并保持当前的标题设置 我发现的所有教程都没有标题 这是我的代码片
  • 如何使用 Firebase 在 Flutter 中使用 Future Builder 将两个 Future 的结果合并为一个 Future

    所以基本上我想将两个查询的结果添加到一个查询中 删除重复项 然后显示 我该怎么做 Future