Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 颤振-合并仅显示一组值的两条流_Flutter_Dart - Fatal编程技术网

Flutter 颤振-合并仅显示一组值的两条流

Flutter 颤振-合并仅显示一组值的两条流,flutter,dart,Flutter,Dart,我有两条流,我将它们合并如下: Stream<List<QuerySnapshot>> getData() { Stream stream1 = Firestore.instance.collection('datestoremember').document('default').collection('Dates_to_Remember').snapshots(); Stream stream2 = Firestore.instance.collection

我有两条流,我将它们合并如下:

 Stream<List<QuerySnapshot>> getData() {
  Stream stream1 = Firestore.instance.collection('datestoremember').document('default').collection('Dates_to_Remember').snapshots();
  Stream stream2 = Firestore.instance.collection('datestoremember').document('Ngrx54m84JbsL0tGvrBeKCBlEnm2').collection('Dates_to_Remember').snapshots();
  return StreamZip([stream1, stream2]);
}
Stream getData(){
stream1=Firestore.instance.collection('datestoremember')。document('default')。collection('Dates_to_Memory')。snapshots();
stream2=Firestore.instance.collection('datestoremember')。document('Ngrx54m84JbsL0tGvrBeKCBlEnm2')。collection('Dates_to_memory')。snapshots();
返回StreamZip([stream1,stream2]);
}
然后,我尝试在流生成器中组合这两个流,但结果只有一组值。如果我将流1的名称更改为流2,反之亦然,则会显示另一组值,这表明我在此处合并两个流时存在问题:

child: StreamBuilder(
            stream: getData(),
            builder: (BuildContext context, AsyncSnapshot<List<QuerySnapshot>> snapshot1) {
            List<QuerySnapshot> querySnapshotData =  snapshot1.data.toList();
            querySnapshotData[0].documents.addAll(querySnapshotData[1].documents);
child:StreamBuilder(
流:getData(),
生成器:(构建上下文上下文,异步快照快照1){
List querySnapshotData=snapshot1.data.toList();
querySnapshotData[0]。documents.addAll(querySnapshotData[1]。documents);
然后我继续使用以下querySnapshotData:

if (querySnapshotData[0].documents.isEmpty)
                return Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  children: <Widget>[
                    Center(
                      child: CircularProgressIndicator(),
                    )
                  ],
                );
              if (querySnapshotData[0].documents.length == 0)
                return const Center(
                  child: Text(
                    "Not Available",
                    style: TextStyle(fontSize: 30.0, color: Colors.grey),
                  ),
                );
              return new PageView.builder(
                itemCount: querySnapshotData[0].documents.length,
                controller: PageController(viewportFraction: 0.5),
                onPageChanged: (int index) => setState(() => _index = index),
                itemBuilder: (_, i) {
                  return Transform.scale(
                    scale: i == _index ? 1 : 0.5,
                    child: Card(
                      elevation: 6,
                      shape: RoundedRectangleBorder(
                          borderRadius: BorderRadius.circular(10)),
                      child: Column(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          Text(querySnapshotData[0].documents[i]['Date'].toDate().day.toString()),
                          Text(DateFormat.MMMM()
                              .format(
                              formatter.parse(querySnapshotData[0].documents[i]['Date'].toDate().toString()))
                              .toString()),
                          Padding(
                            padding: const EdgeInsets.only(
                                left: 8.0, right: 8.0),
                            child: FittedBox(
                              fit: BoxFit.contain,
                              child: Text(
                                querySnapshotData[0].documents[i]['Title'],
                                overflow: TextOverflow.ellipsis,
                              ),
                            ),
                          )
                        ],
                      ),
                    ),
                  );
                },
              );},
if(querySnapshotData[0].documents.isEmpty)
返回列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
居中(
子对象:CircularProgressIndicator(),
)
],
);
if(querySnapshotData[0].documents.length==0)
返回常数中心(
子:文本(
“不可用”,
样式:TextStyle(字体大小:30.0,颜色:Colors.grey),
),
);
返回新的PageView.builder(
itemCount:querySnapshotData[0]。documents.length,
控制器:页面控制器(视口分数:0.5),
onPageChanged:(int index)=>setState(()=>_index=index),
itemBuilder:(u,i){
返回变换比例(
标度:i==\u指数?1:0.5,
孩子:卡片(
标高:6,
形状:圆形矩形边框(
边界半径:边界半径。圆形(10)),
子:列(
mainAxisAlignment:mainAxisAlignment.center,
儿童:[
文本(querySnapshotData[0]。文档[i]['Date'].toDate().day.toString()),
文本(DateFormat.MMMM()
.格式(
parse(querySnapshotData[0]。文档[i]['Date'].toDate().toString())
.toString()),
填充物(
填充:仅限常量边设置(
左:8.0,右:8.0),
孩子:FittedBox(
适合:BoxFit.contain,
子:文本(
querySnapshotData[0]。文档[i]['Title'],
溢出:TextOverflow.省略号,
),
),
)
],
),
),
);
},
);},

首先创建一个var stream1=await Firestore.instance.collection。我已经添加了await并将getData转换为Future,但是现在我在stream:getData()中遇到一个错误,说参数类型“Future”不能分配给参数类型“stream”。