【发布时间】:2021-11-23 03:28:13
【问题描述】:
在我的应用程序中,我使用 Streambuilder 在屏幕上显示存储在 Firestore 中的计划列表(每个计划都有自己的文档):
final CollectionReference planCol = FirebaseFirestore.instance.collection('users').doc(FirebaseAuth.instance.currentUser.uid).collection('plans');
body: StreamBuilder(
stream: planCol.snapshots(),
builder: (context, snapshot) {
if (snapshot.hasData) {
final planDocs = snapshot.data.docs;
return ListView.builder(
itemCount: planDocs.length,
itemBuilder: (context, index) => MyListTile(
title: Text(planDocs[index]['name']),
trailing: IconButton(
icon: Icon(Icons.edit),
onPressed: () {
edit(planDocs[index]);
},
),
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) {
return ExerciseTable(
plan: UserPlan(
name: planDocs[index]['name'],
exerciseNames: planDocs[index]
['exerciseNames'],
rows: planDocs[index]['rows'],
planId: planDocs[index].id,
),
);
},
),
);
}),
);
} else {
return Center(
child: CircularProgressIndicator(),
);
}
}));
在这个屏幕上,我只想显示每个文档的名称,而不是存储在文档中的所有其他数据(因为它们非常大)。现在我问自己,当每个文档都很大时,Streambuilder 的工作效率如何。它是加载整个文档还是只加载文档的字段?
【问题讨论】:
标签: firebase flutter dart google-cloud-platform google-cloud-firestore