Flutter / Firebase-如何在第三个单独的集合中显示两个集合的数据?

时间:2020-06-10 09:34:47

标签: flutter google-cloud-firestore

我正在制作一个应用程序,其中用户要求预订肉店或订购一些肉。我有两节课。

  1. BookingRequests(通过它我可以看到来自booking_collection的所有用户的预订请求)
  2. OrderRequests(通过它我可以查看来自order_collection的所有用户的订单请求)

两者的代码几乎相似。一个显示了预订的 X-Animal 的ListView。另一个显示订购的 X-Animal 肉。两者中都有一个IconButton。我想如果我按下图标按钮,则任何一个班级数据都应保存在第三个集合中 approved_requests 。我是新来的扑扑。有人可以帮助我吗?这是booking.dart的代码

 class BookingRequests extends StatelessWidget {
  final db = Firestore.instance;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        children: <Widget>[
          StreamBuilder<QuerySnapshot>(
              stream: db.collection('booking_collection').snapshots(),
              builder: (context, snapshot) {
                if (snapshot.hasData) {
                  return Column(
                    children: snapshot.data.documents.map((doc) {
                      return ListTile(
                            title: new Text(
                                  "${doc.data['animal']} slaughtering booked",
                                ),
                            trailing: IconButton(
                              icon: Icon(Icons.done),
                              onPressed: (){
                                //implementation here
                              },
                            ),
                      );
                    }).toList(),
                  );
                } else {
                  return SizedBox();
                }
              }),
        ],
      ),
    );
  }
}

类似地,我的订单。飞镖

class OrderRequests extends StatelessWidget {
  final db = Firestore.instance;
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView(
        children: <Widget>[
          StreamBuilder<QuerySnapshot>(
              stream: db.collection('order_collection').snapshots(),
              builder: (context, snapshot) {
                if (snapshot.hasData) {
                  return Column(
                    children: snapshot.data.documents.map((doc) {
                      return ListTile(
                            title: new Text(
                                  "${doc.data['animal']} meat ordered",
                                ),
                            trailing: IconButton(
                              icon: Icon(Icons.done),
                              onPressed: (){
                                //implementation here
                              },
                            ),
                      );
                    }).toList(),
                  );
                } else {
                  return SizedBox();
                }
              }),
        ],
      ),
    );
  }
}

0 个答案:

没有答案