firebase - 如何从fire store中获取多行并显示在数据表中--FLUTTER

标签 firebase flutter google-cloud-firestore error-handling data-retrieval

我在 firestore 上有一个名为“CASHOUT”的集合,其中包含字段 Random1、2 和 3。 Document 1 of Collection CASHOUT

我能够在数据表小部件中成功获取并显示

但是当我创建另一个具有相同字段的文档时

**它给我一个错误

rows.cells.length != columns.length

**

我做错了什么?这是代码

            StreamBuilder(
              stream: _firestore.collection('CASHOUT').snapshots(),
              builder: (BuildContext context,
                  AsyncSnapshot<QuerySnapshot> snapshot) {
                if (snapshot.hasError) {
                  return const Text('Something went wrong');
                }

                if (snapshot.connectionState == ConnectionState.waiting) {
                  return const Text("Loading");
                }

                if (snapshot.hasData) {
                  List<DataCell> displayedDataCell = [];

                  for (var item in snapshot.data!.docs) {
                    displayedDataCell.add(
                      DataCell(
                        Text(
                          item['RANDOM1'].toString(),
                        ),
                      ),
                    );
                    displayedDataCell.add(
                      DataCell(
                        Text(
                          item['RANDOM2'].toString(),
                        ),
                      ),
                    );
                    displayedDataCell.add(
                      DataCell(
                        Text(
                          item['RANDOM3'].toString(),
                        ),
                      ),
                    );
                  }

                  return FittedBox(
                    child: DataTable(
                      columns: const <DataColumn>[
                        DataColumn(
                          label: Text(
                            'Date',
                          ),
                        ),
                        DataColumn(
                          label: Text(
                            'Amount',
                          ),
                        ),
                        DataColumn(
                          label: Text(
                            'Optional Detail',
                          ),
                        ),
                      ],
                      rows: <DataRow>[
                        DataRow(cells: displayedDataCell),
                      ],
                    ),
                  );
                }
                return const CircularProgressIndicator();
              },
            ),

最佳答案

您收到此错误是因为您要创建一个单元格中有 6 个项目的 DataRow,而必须创建 2 个包含 3 个单元格的 DataRow

rows: <DataRow>[
  for (int i = 0; i < displayedDataCell.length; i += 3)
    DataRow(cells: [displayedDataCell[i], displayedDataCell[i + 1], displayedDataCell[i + 2]])
],

关于firebase - 如何从fire store中获取多行并显示在数据表中--FLUTTER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71241833/

相关文章:

android - Firebase 获取所有 key

class - Flutter Equatable Class 属性必须全部为 final

javascript - 按日期范围的 Firestore 查询

dart - 热重载是否会拾取 Assets 的更改?

firebase - Firestore 规则使用 Flutter 客户端验证时间戳

javascript - 在 Cloud Firestore onCreate 触发器中运行批处理或事务

android - 如何在一个 Firebase 项目中使用两种不同的语言?

ios - 如何在 AppDelegate 之外放置 FCM 的通知授权请求?

swift - 从 firebase 仪表板中删除整个节点

flutter - 如何在 flutter 的后台进程中使用网络连接插件