【发布时间】:2020-12-14 09:59:16
【问题描述】:
我想在 Futter 中合并两个 Firestore 流。我尝试了很多方法但在某些情况下,我得到了一个错误,其他人只返回最后一个流,而不是合并的流。这是我的代码
class Classes extends StatefulWidget {
@override
_ClassesState createState() => _ClassesState();
}
class _ClassesState extends State<Classes> {
String path0 = "class_schedule/Classes";
String path1 = "users/R2z6mt5/Classes";
@override
Widget build(BuildContext context) {
return Scaffold(
body: StreamBuilder(
stream: Rx.merge([
Firestore.instance.collection(path1).snapshots(),
Firestore.instance.collection(path0).snapshots()
]),
builder: (context, snapshot) {
return !snapshot.hasData
? Text('PLease Wait')
: ListView.builder(
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index) {
DocumentSnapshot items = snapshot.data.documents[index];
return Padding(
padding: const EdgeInsets.all(8.0),
child: Container(
color: Colors.yellow,
height: 50,
width: double.infinity,
child: Center(
child: Text(
items['Course'],
style: TextStyle(
fontSize: 24,
),
),
),
),
);
},
);
}),
);
}
}
请告诉我如何解决这个问题?
提前致谢
【问题讨论】:
-
“我遇到错误” - 我没有看到任何错误
-
@pskink 我想合并,但它只显示最后一个流。
-
你遇到了什么错误?您在日志中看到了什么?
-
@pskink 如果我使用 StreamZip,则不在 Rx.merge 中,然后我得到“类 'List
' 没有实例获取器 'documents'。接收者:'_GrowableList' 的实例(长度:2)尝试调用:文档“