Флаттер получает одну переменную из списка?

#flutter #dart

Вопрос:

Я получаю данные из firestore вот так

               CollectionReference _collectionRef =
                  FirebaseFirestore.instance.collection('Users');
              QuerySnapshot querySnapshot = await _collectionRef.get();

              // Get data from docs and convert map to List
              final allData =
                  querySnapshot.docs.map((doc) => doc.data()).toList();

              print(allData);
 

его данные для печати в формате списка, таком как этот

 I/flutter (13500): [{number:  123131, shopname: ishaq shop, id: here i need doc id , lastupdate: , sendQty: }, {number:  1231231, shopname: ishaq shop, lastupdate: , id: gXVR4Sp3Cm3pii97Gh00, sendQty: }, {number:  123131, shopname: ishaq shop, lastupdate: , id: AM8KL6SxvFkCRQqpTjre, sendQty: }]
 

Я просто хочу получить номер из списка. Я пытаюсь что-то вроде

 print(allData['number']);
print(allData.number);
 

но не работает на меня

Ответ №1:

Попробуй это. Если это сработает, вы можете повторить это в своем списке. Вы конвертируете свои данные в список здесь, а затем пытаетесь позвонить, как на карте. Причина, по которой это неправильно. и замените финал списком. Это прекрасно работает

 List allData =
              querySnapshot.docs.map((doc) => doc.data()).toList()
 

Попробуй

 print(allData[0]['number']);
 

Комментарии:

1. уже попробуйте это, чтобы попытаться исправить оператор на существующий оператор или определить оператор» []».

2. Также вам нужно заменить конечный параметр во всех данных списком. Я отредактировал, теперь все работает нормально

Ответ №2:

allData является a List<Map<String, dynamic>> , это означает список карт (карта: также называется словарем на java/swift и других языках).
Чтобы получить доступ к одной переменной, вам сначала нужен индекс словаря, а затем используйте ключ для доступа к нему.

 var number = allData.first['number'];
print(number);
 

Прямо здесь я печатаю первый элемент списка, но вы можете получить доступ к любому нужному элементу, если у вас есть его индекс.