问题标签 [stream-builder]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
listview - 使用 StreamBuilder 和从 Firebase Firestore 数据库查询时,ListView 不会更新/获取数据
我正在尝试从特定集合用户中检索数据,如下面的代码所示,但是当我查询此集合中的用户时,列表视图不显示。换句话说,它只显示一个 CircularProgressIndicator() 表示没有数据可以找到。在我注释掉 where 查询的那一刻,listview 完美呈现。
我尝试将 Nested StreamBuilders 和 FutureBuilder 与 Streambuilder 结合使用,但这些解决方案都不起作用。对于这样一个关键特性,必须有一个简单的解决方案。
请告诉我如何同时查询和使用 StreamBuilder。
firebase - Flutter/Firestore:如何在滚动时将项目添加到流中(完成获取时保留滚动位置)?
我有一个聊天 ( ListView
),其中包含我只想根据需要加载的消息。
因此,最初加载聊天时,我想加载最后 n 条消息,而当用户向上滚动时,我也想获取较旧的消息。
每当有新消息到达 firebase 集合时,都应将其添加到ListView
. 我通过使用StreamBuilder
获取最后 n 条消息流的 a 来实现这一点,其中 n 是存储在状态中的变量,我可以增加它以加载更多消息(它是获取最后 n 条消息流的函数的参数) .
但是对于我当前的实现,问题是即使在我向上滚动时获取更多消息并将其添加到列表视图中,它也会立即跳回底部(因为列表视图已重建并且未保留滚动位置)。我怎样才能防止这种情况发生?
arrays - StreamBuilder arrayContains 和 RangeError(index):无效值:有效值范围为空:0
慢慢掌握 Flutter 和 Dart 作为我的新爱好。您可以提供的任何建议或帮助将不胜感激!我正在尝试实现一个简单的朋友系统,您可以在其中搜索另一个用户并将他们添加为朋友。
预期的结果是:
- 登录用户转到朋友的个人资料并单击“添加朋友”按钮。
- Firestore 有一个 users 集合。在该集合中是包含个人资料信息的每个用户的文档,包括数组“朋友”。单击“添加朋友”按钮会将登录的用户 UID 添加到第二个人的“朋友”数组中。
- 然后在好友屏幕上,我使用 StreamBuilder 和 Listview.builder 将所有用户显示为卡片,这些用户的“好友”数组中有登录用户的 UID。
为此,我想使用.where('friends', arrayContains: 'user.uid'),仅在屏幕列表中显示这些用户卡。
这是我写的代码:
但是,当我运行我的应用程序时,它显示错误:
笔记:
- itemCount 现在被硬编码为 1。我只希望在测试时返回 1 个用户。一旦一切正常,我将在 Firestore 中填充更多用户。
- 当我将 arrayContains 换成 .where ('displayName', isEqualTo: 'My Name').snapshots(),之类的更简单的东西时,应用程序可以正常工作
- user.uid 已经过测试并且确实包含预期的字符串
- 数组在 Firestore 中存在值(请参阅帖子底部的链接)
- 我已经为我在“用户”中使用的值设置了一个索引
有谁知道我可以对这个错误做些什么并检索具有登录用户 UID 的朋友数组的文档?
再次感谢任何建议和帮助。 Cloud Firestore 的屏幕截图在这里
firebase - Flutter:使用 StreamBuilder 时应用程序静默崩溃
我试图弄清楚我的 StreamBuilder/Stream 的问题是什么:
因此,在 initstate 方法中,我得到了存储在状态中然后分配给 StreamBuilder 的流。
获取 Stream 的方法是:
我在构造函数 Page.fromMap() 中编写的打印语句(包括构造函数末尾的一个)已执行,因此我假设错误不存在。我在 map 方法中添加的打印语句(来自 .snapshots().map(...))没有执行,这对我来说没有意义,因为 Page 构造函数中的语句被执行(使用来自 firebase 文档的正确值)。
调用栈如下:
flutter - Streambuilder没有在颤动的对话框内被调用
我正在使用下面的代码。我单击某个按钮,如果我的 OTP 匹配下面的方法被调用。在那种方法中,我正在调用 bloc。我正在使用的小部件是 Statefulwidget。
flutter - 为什么 StreamBuilder 多次使用 initialData 而不是最新的快照?
我可能只是误解了飞镖的流,但是当我这样做时:
使用 TabBarView 渲染 StreamBuilder 时出现一些奇怪的行为。
首先,我必须使用asBroadcastStream()否则我会得到:
错误状态:Stream 已被收听
我承认这是一个糟糕的解决方案。
但是,虽然解决方案有效,但现在返回 TabBarView 中的 StreamBuilder 将重新使用 initialData 而不是流的最新快照来重建。这是两次返回选项卡时的打印输出:
I/flutter (14541):涂料
I/flutter (14541):正确的 URL
I/flutter (14541):涂料
I/flutter (14541):涂料
我认为这两个问题都是相关的,但我不明白为什么 StreamBuilder 重用 async* 和 initialData
flutter - 使用 StreamBuilder 从 Firestore 显示当前用户的数据(不是所有用户的数据)
我试图在颤振中使用 StreamBuilder 来返回一个列表,但仅适用于当前登录的用户。当我尝试
我不断收到以下错误:
在 null 上调用了 getter 'email'。
接收方:空
尝试呼叫:电子邮件
当我取出.where
零件时它工作正常,但它只返回每个用户的所有数据,我只希望它返回链接到该当前用户的数据。
任何想法都会非常有帮助,所以提前谢谢你。
杰森
编辑:这是更多上下文的更多代码:
flutter - Streambuilder 仅在首次启动应用程序时显示来自本地缓存的数据
我正在使用 StreamBuilder 从 firestore 流式传输数据。
如果我取出.where
流的一部分,它会将所有数据返回到设备。完成此操作后,我可以将.where
部分放回原处,它工作正常。但是,它不会立即起作用。这表明该.where
部分仅在缓存已经有数据时才有效。此外,如果我使用 Firestore 控制台添加文档,它不会使用新数据更新应用程序。但是由于某种原因,如果我删除该部分,它将显示所有更新的文档.where
。
我真的很困惑。有任何想法吗?
谢谢杰森
更新:我现在想出了如何解决这个问题。请参阅下面的答案,了解我是如何解决的。
flutter - Flutter for Firestore 中的 Streambuilder
嗨,我是 Flutter 的新手,我正在尝试使用流构建器从 Firestore 中获取数据,并在从 Firebase 数据库中获取数据时显示一个微调器。我尝试实现一个流构建器和未来构建器。我有一个从 Firestore 获取数据的函数,然后我将数据传递给另一个函数以填充银色网格。有人可以帮帮我吗?