首页 > 解决方案 > Flutter - 如何在 Flutter 中合并两个流?为什么我只有最后一个流?

问题描述

我想在 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,
                              ),
                            ),
                          ),
                        ),
                      );
                    },
                  );
          }),
    );
  }
}

请告诉我我该如何解决这个问题?

提前致谢

标签: flutterdart

解决方案


您可以使用此将两个流合并在一起。请参阅文档以获得更好的理解。


推荐阅读