问题标签 [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.

0 投票
2 回答
656 浏览

firebase - snapshot.data 在 streambuilder 中返回 null 但在我返回带有快照数据的数据模型之前显示正确的值

这是我的流生成器​​的代码。

这是我拥有所有数据库查询的类。我似乎已成功从 firebase 获取数据,但它没有显示在我的流生成器​​中。我怀疑数据没有注入到我创建的数据模型中,但不知道如何注入。

更新:它没有返回空值。我尝试收到错误消息。消息显示“'type 'List' 不是 type 'List' 的子类型”。

0 投票
1 回答
1357 浏览

flutter - 如何告诉 StreamBuilder 我在出错后重试加载数据

我有一个用于加载视频帖子列表的流生成器​​。每当发生错误时,我都会向接收器添加一个错误,并且StreamBuilder会显示一条带有“重试”按钮的错误消息。我的问题是,当我按下按钮时,什么都没有发生(视觉上),但我想在重试时用 spinLoader 替换错误消息

我将如何实现这一目标?

我正在考虑向接收器添加一个布尔值并检查 snapshot.data 是否为布尔值,如果是则返回 spinLoader,但这似乎违反直觉。

0 投票
0 回答
107 浏览

flutter - 使用streambuilder颤动firestore分页

我有一个颤振的应用程序,并且在使用 firestore 与 streambuilder 实现分页时遇到问题。研究了这个话题,有一些答案,但没有一个能解决我的问题。我的应用程序是一个需要实时数据的社交媒体应用程序。如果用户向下滚动,我需要检索有限的数据,然后加载更多数据。我如何使用流和流构建器来实现它,而不是未来和未来的构建器;类似于 Facebook 的东西。

0 投票
1 回答
1247 浏览

flutter - 颤振:未处理的异常:在构建期间调用了 setState() 或 markNeedsBuild()

我有这个异常的问题,我被卡住了,我需要你的帮助。我在流构建器中使用导航器,我已经在流构建器中使用它,但是这次我有一个异常,我不知道如何解决它。它尝试添加处置功能,但我不知道如何关闭流构建器。

这是我的状态Widget build(BuildContext context) { changestate(); return Scaffold( backgroundColor: Theme.of(context).backgroundColor, body: Center( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ SizedBox(height: 40), Text('VOUS', style: TextStyle(fontSize: 50)), Text( 'devez ' + legage, style: TextStyle(fontSize: 35), ), SizedBox(height: 30), Image(image: AssetImage('assets/images/hands/2htop.png')), SizedBox(height: 30), Expanded( child: StreamBuilder( stream: Firestore.instance .collection('rooms') .document(pincode) .snapshots(), builder: (context, snapshot) { if (snapshot.hasData && snapshot.data['nb screen'] == 1) { gotdata++; newduel(context); } return StreamBuilder<QuerySnapshot>( stream: Firestore.instance .collection('rooms') .document(pincode) .collection('users') .snapshots(), builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) { if (!snapshot.hasData) return Text("Chargement...."); else { return new GridView.count( crossAxisCount: 5, children: snapshot.data.documents .map((DocumentSnapshot document) { return Container( child: OvalPic( document['photo'], document['couleur']), ); }).toList()); } }, ); }, ), ), Container( child: (ffull2 == 0) ? AnimatedLiquidLinearProgressIndicator() : fgbutton(mypink, 'DUEL SUIVANT', context)), SizedBox(height: 30) ], ), ), ); }

}

这就是newduel中的内容:

Navigator.pushReplacement( context, MaterialPageRoute(builder: (context) => Votes()));

错误是:

在此处输入图像描述

0 投票
1 回答
566 浏览

listview - 如何创建搜索栏和列表(使用 FireStore 中的 StreamBuilder 和 Listview 创建)一起滚动?

我对颤振/飞镖相对较新,我正在尝试让我的一个页面上的格式正常工作。我想在顶部有一个搜索栏,然后是一个列表(填充来自 Firestore 的信息),我想让它们一起滚动而不仅仅是列表。

到目前为止,这是我的代码的一部分:

我该怎么办?

0 投票
2 回答
1284 浏览

flutter - 我需要取消 Stream(扑)

我正在听 Firestore 中的一组文档(作为聊天应用程序的一部分)。我通过使用一个服务来做到这一点,该服务创建Stream<QuerySnapshot>如下:

然后我创建一个 StreamBuilder 如下:

我想知道是否需要在包含StreamBuilder小部件的 dispose 方法中分离此流。我对 Streams 和 StreamBuilders 了解不多,所以我不知道该怎么做,但我真的很想避免任何内存泄漏。

0 投票
1 回答
1550 浏览

firebase - 具有多个侦听器的全局流

我有一个连接到 Firebase 文档的流,并且我一直在收听文档的任何更改。

我想在文档更改时更新我的​​应用程序的某些部分,因此我使流全局可用,并在不同的屏幕上使用 StreamBuilders,以便屏幕上可以使用最新的数据。

全局流和多个StreamBuilders会不会有问题?当 StreamBuilders 在多个屏幕上创建时,应用程序如何工作?

这是我的全局流:

这是我的一个屏幕小部件的构建方法(我根据流数据更改按钮的颜色):

0 投票
1 回答
2096 浏览

firebase - 快照返回空值----flutter

伙计们,我是新来的,并且一直在尝试从 firebase 检索数据并使用 streambuilder 将其显示在 gridview 中。但它的快照是空的。我经历了其他用户提出的类似问题,但没有任何效果。

错误:════════(3)widgets库捕获的异常═══════════════════════════════ ═══════════════════ getter 'itemImage' 在 null 上调用。Receiver: null 尝试调用:itemImage 相关的导致错误的小部件是:GridCard file:///C:/Users/dell/foodie_demo/lib/User_Screens/home.dart:107:28 ═════════ ══════════════════════════════════════════════════ ═════════════════════════════════════════

'''

0 投票
1 回答
66 浏览

firebase - StreamBuild:流,调用返回Firestore的方法 Stream在更新之前不会检索数据

我希望有人可以解释为什么在显式调用Firestore.instance.collection('data').snapshots()与调用包含Firestore.instance.collection('data').snapshots( )并返回一个流。

调用包含Firestore.instance.collection('data').snapshots()的方法仅在对 firestore 数据进行更改后抓取数据快照。

0 投票
3 回答
2062 浏览

flutter - StreamBuilder ListView 在首次加载时从 Firestore 返回空列表

在我作为注册过程的一部分构建的应用程序中,为每个“用户”文档创建了一个子集合,其中包含多达 100 个文档。

我试图在StreamBuilder.

我有一个无法解决的奇怪错误。当StreamBuilder用户第一次查看数据时,它不会显示数据。相反,它返回一个空列表。

我可以看到文档已在子集合中正确生成。数据正在使用 StreamBuilder 的页面之前的页面上设置。即使有延迟,我也会认为新文档会刚刚开始出现在StreamBuilder. Firebase 控制台视图

如果应用程序重新启动,或者用户注销并再次登录,StreamBuilder会按预期显示数据。

下面是我正在使用的代码:

编辑:根据评论请求添加主构建

我已经尝试解决

我最初以为是连接错误,所以创建了一系列基于switch (snapshot.connectionState). 我可以看到,ConnectionState.active = true因此认为在 Firestore 中添加新文档可能会产生效果,但什么也没做。

我尝试了以下方法来使初始流构造函数异步。它无法加载任何数据。

我试过删除 tabcontroller 元素——例如只有一个页面——但这也无济于事。

我尝试使用 aDocumentSnapshot和 a访问数据QuerySnapshot。我两个都有问题。

我敢肯定这很简单,但坚持下去。非常感谢任何帮助。谢谢!