从流构建器的firebase firestore集合阅读数据

roejwanj  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(133)

我遇到了firebase fireStore的问题。有一个流构建器从项目集合中阅读数据。在项目集合中有一些字段和另一个集合。我没有任何字段的问题,问题是集合。如何访问流构建器中的这些集合?

StreamBuilder<QuerySnapshot<Map<String, dynamic>>>(
        stream: CallApi().finalReference(reference: widget.finalReference),
        builder: (context, snapshot) {
          if (snapshot.hasError) {
            return Center(child: Text('snapshot Error:${snapshot.error}'));
          }
          if (snapshot.hasData) {
            var snapData = snapshot.data!.docs;
            if (kDebugMode) {
              print(snapData.length);
            }
            return Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Expanded(
                  child: ListView.builder(
                    itemCount: snapData.length,
                    itemBuilder: (BuildContext context, int index) {
                      return ListItem(
                        mTitle: snapData[index].get('title') ?? '',
                        mSubTitle: snapData[index].get('address') ?? 'empty',
                        mPrice: snapData[index].get('price') ?? '',
                        mImageUrl: snapData[index].get('gallery')[0],
                        mOnTap: () {
                          Navigator.push(
                            context,
                            MaterialPageRoute(
                              builder: (context) => DetailsPage(
                                adsTitle: snapData[index].get('title'),
                                adsSubTitle: snapData[index].get('subTitle'),
                                gallery: snapData[index].get('gallery'),
                                specFTitle: snapData[index].get('gallery'),
                              ),
                            ),
                          );
                        },
                      );
                    },
                  ),
                ),
              ],
            );
          }
          return const Center(child: CircularProgressIndicator());
        },
      ),

这里是火线

sbtkgmzw

sbtkgmzw1#

从Firestore阅读数据是一个浅层操作。当你读取一个文档时,它的子集合不会被自动读取。
因此,如果您想从当前文档的子集中获取数据,则必须为此启动一个新的读取操作。如果您想在UI中显示该数据,则可以为此使用一个新的嵌套StreamBuilderFutureBuilder

相关问题