Вот моя база данных (скриншот)
Так что я могу отображать все книги пользователю довольно стандартным способом, используя 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 для каждого снимка документа? У меня также есть несколько ссылок на документы для каждой книги в моем реальном проекте