Получение данных из QuerySnapshot во флаттере

Мне нужно заполнить DropdownButton из документа в Firestore. Я могу получить данные. Когда я смотрю в файл snapshot.data, я вижу две записи, которые я и ожидал увидеть. В приведенном ниже коде все работает нормально, если я закомментирую фрагмент кода, как вы видите.

Container( child: StreamBuilder( //stream: _firestoreService.getAgency(), stream: _db.collection(‘agency’).snapshots(), builder: (BuildContext context, AsyncSnapshot snapshot) { if (snapshot.data == null) { return Center( child: CircularProgressIndicator(), ); } else { //var length = snapshot.data.docs.length; //print(‘length: ‘ + length); return new DropdownButton<String>( hint: new Text(«Select Agency»), value: _currentAgency, /* <<<< The code below is where I am having problems //onChanged: changedDropDownState, **items: snapshot.data.docs.map((Map map) { return new DropdownMenuItem<String>( value: map[«name»].toString(), child: new Text( map[«name»], ), ); }).toList(),** */ ); } ; }), ),

Когда я раскомментирую код и запускаю приложение, я получаю такую ​​ошибку:

======== Exception caught by widgets library ======================================================= The following _TypeError was thrown building StreamBuilder<QuerySnapshot>(dirty, state: _StreamBuilderBaseState<QuerySnapshot, AsyncSnapshot<QuerySnapshot>>#d9273): type ‘(Map<dynamic, dynamic>) => DropdownMenuItem<String>’ is not a subtype of type ‘(QueryDocumentSnapshot) => dynamic’ of ‘f’

Я хочу заполнить атрибут value: идентификатором документа, но я не вижу его в файле snapshot.data. Еще я хочу заполнить child: attribute некоторыми значениями из файла snapshot.data.

Как мне это сделать?

Источник: ledsshop.ru

Стиль жизни - Здоровье!