Here's my database (screenshot)
因此,我可以使用listview以非常标准的方式向用户显示所有图书:
StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('books').snapshots(),
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
if (snapshot.hasError)
return new Text('Error: ${snapshot.error}');
switch (snapshot.connectionState) {
case ConnectionState.waiting: return new Text('Loading...');
default:
return new ListView(
children: snapshot.data.documents.map((DocumentSnapshot document) {
return new ListTile(
title: new Text(document['text']),
subtitle: // I want to display the author's name
);
}).toList(),
);
}
},
);
但是问题是,document['author']
是一个DocumentReference
,我可以通过DocumentSnapshot ds = await documentSnapshot['author'].get()
得到。但是问题是,这是我不能在ListView中使用的未来。最好的方法是什么?对每个文档快照都使用Futurebuilder?我的实际项目中的每本书也有多个文档引用
答案 0 :(得分:0)
您可能想使用FutureBuilder
而不是StreamBuilder
。根据{{3}},它还会删除一些构建器标牌代码。让我知道事情如何发展。如果快照不包含任何错误,则始终可以返回ListView.builder
。那是我的方法。