gpt4 book ai didi

flutter - 如何遍历集合中的所有文档以在ListView中显示内容?

转载 作者:行者123 更新时间:2023-12-03 04:42:23 24 4
gpt4 key购买 nike

我的目标
我想遍历一个包含1…n个文档的集合。我想将文档的内容放在ListView中。该集合表示ListView,每个文档应为一个ListTile。
我的Firestore数据
我有一个Firestore数据库,其中包含一个名为“current_question”的集合,其中包含多个文档。每个文档都包含有关一个问题的详细信息:标题,描述,日期等。
我到目前为止为止的操作
我知道如何显示一个文档的数据。我不知道的是,如何加载所有文档并发布它们。
加载一个文档的代码:

body: FutureBuilder(
future: connectToFirebase(),
builder: (BuildContext context, AsyncSnapshot<void> snapshot) {
if (snapshot.connectionState == ConnectionState.waiting) {
return Center(child: CircularProgressIndicator());
} else {
return StreamBuilder<DocumentSnapshot>(
stream: database.getQuestions(),
builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (!snapshot.hasData) {
return Center(child: CircularProgressIndicator());
} else {
Map<String, dynamic> items = snapshot.data.data;
print(items);
return ListView.builder(
itemCount: 1,
itemBuilder: (context, i) {
return ListTile(
title: Text(items['Titel'].toString()),
trailing: Text(items['Zaehler'].toString()),
);
}
);
}
},
);
}
}),
Future<void> connectToFirebase() async {
final FirebaseAuth auth = FirebaseAuth.instance;
AuthResult result = await auth.signInAnonymously();
user = result.user;

database = DatabaseService();
}
final CollectionReference aktFragen = Firestore.instance.collection('aktFragen')/*.orderBy('Zaehler')*/;

Stream getQuestions() {
return aktFragen.document('xAGRoZCgiClrpeAPtb5B').snapshots();
}
在屏幕截图中查看结果:
enter image description here

最佳答案

如果要检索所有文档,则必须执行QuerySnapshot。这是一种实现方法:

// Creating an instance of your model with all the users info 
List<CustomModelNameHere> _myListSnapshot(QuerySnapshot snapshot) {
return snapshot.documents.map((doc) {
return CustomModelNameHere(
title: doc.data["title"] ?? "",
description: doc.data["description"] ?? "",
);
}).toList();
}

// Get the stream
Stream<List<CustomModelNameHere>> get getQuestions {
return aktFragen.snapshots()
.map(_myListSnapshot);
}

关于flutter - 如何遍历集合中的所有文档以在ListView中显示内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62978360/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com