Я хочу, чтобы ListView отображал имена пользователей. Я использую облачную функцию с администратором sdk, чтобы вернуть список всех пользователей с соответствующими идентификаторами пользователей. Когда я хочу передать этот uid в виджет с помощью streambuilder, он выдает ошибку:
Class 'QuerySnapshot' has no instance method '[]'.
Receiver: Instance of 'QuerySnapshot'
Tried calling: []("firstName")
Это функция, которую я вызываю при создании ListView для заголовка:
Widget getFirstName(uid, item) {
return StreamBuilder(
stream: Firestore.instance
.collection('users')
.document('HzBUMs06BAPHK0Y7m5kfOmUzawC2')
.collection('userInfo')
.snapshots(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
if (!snapshot.hasData) {
return Text('${item['email']}');
} else {
return Text('${snapshot.data.documents['firstName']}');
}
},
);
}
Я еще не использую uid, который я ему передам, так как User ID, который я жестко закодировал прямо сейчас, является единственным с данными firstName в нем.
Когда я загружаю его не- существующий идентификатор пользователя, он все еще думает, что в нем есть данные, и пытается вернуть свои (несуществующие) данные.
Что я здесь делаю не так?