如何在 Flutter 中使用 Firestone 的 streambuilder 获取嵌套文档?

Posted

技术标签:

【中文标题】如何在 Flutter 中使用 Firestone 的 streambuilder 获取嵌套文档?【英文标题】:How to fetch nested documents using streambuilder from Firestone in flutter? 【发布时间】:2021-02-28 23:26:55 【问题描述】:

我的数据以嵌套形式存储,例如

集合->文档->集合->文档->集合->文档

我在颤振中使用流构建器获取数据。 我的目标是创建一个类的实例,其属性分布在所有三层集合/文档中。

读取第二层后,我的函数返回部分值为 null 的类对象,并在屏幕上显示错误,但一段时间后它会打印最后一层中的值。

由于流生成器,我无法在此处使用 async/await 功能。

我尝试创建嵌套函数,但再次失败。

我也试过 sleep() 函数。

如下所示,在阅读 productVariant 快照后,它会跳过 foreach 循环并创建一个 Order 实例并返回。但是我也在打印这些值,并且在返回命令执行后它们得到了打印。

Code Snippet

【问题讨论】:

我不是在提供答案,而是建议,不要在 UI 中进行抓取!尝试(至少)遵循干净的代码,同时提供一个可粘贴的副本 sn-p 将帮助人们帮助你 【参考方案1】:

感谢您的回答,但我找到了解决方案。

我使用了嵌套的 FutureBuilders,它返回承诺的小部件。

我通过使用小部件更新变量来修改我的 Order 实例。

之前

StreamBuilder -> 获取集合和文档

之后

StreamBuilder -> FutureBuilder 获取集合/文档 ->FutureBuilder ->获取内部集合/文档

【讨论】:

以上是关于如何在 Flutter 中使用 Firestone 的 streambuilder 获取嵌套文档?的主要内容,如果未能解决你的问题,请参考以下文章

如何从数组中删除重复数据

如何将变量值传递给套接字字符串

如何使用 flutter_webview 插件在 Flutter 中启用位置?

如何在flutter中使用flutter_webview_plugin和AndroidX

Flutter-如何在flutter的整个应用程序生命周期中将数据保存在内存中?

如何在 Flutter 中使用 GestureDetector 隐藏 appBar?