Как я могу установить индекс на data.length? - PullRequest
1 голос
/ 08 мая 2020

Как я могу настроить (snapshot.data.documents.length = i) для получения всех данных, а не только первого?

                 .snapshots(),
              builder: (BuildContext context,
                  AsyncSnapshot<QuerySnapshot> snapshot) {
                if (!snapshot.hasData) {
                  return new Text('Connecting...');
                } else {
                  for(int i= 0; i < snapshot.data.documents.length;) {
                    DocumentSnapshot test =
                    snapshot.data.documents[i];
                    print(test['GroupID']);

Ответы [ 4 ]

1 голос
/ 08 мая 2020

Синтаксис цикла for аналогичен приведенному ниже:

for (initial_count_value; termination-condition; step) { 
   //statements 
}    

Но в вашем коде вы забыли увеличить for-loop. Это можно решить с помощью ddd i++. Проверьте код ниже:

 // add the increment statement 
 for(int i= 0; i < snapshot.data.documents.length; i++) {
 // add your statement here
  }
``

I hope this helps.

1 голос
/ 08 мая 2020

Вам не нужно выполнять итерацию внутри StreamBuilder, для доступа к данным просто выполните:

print(snapshot.data.documents[index].data["GroupID"]);

Пример:

else {
        return ListView.builder(
            shrinkWrap: true,
            itemCount: snapshot.data.documents.length,
            itemBuilder: (BuildContext context, int index) {
              return ListTile(
                contentPadding: EdgeInsets.all(8.0),
                title:
                    Text(snapshot.data.documents[index].data["GroupID"]),
                leading: Text(snapshot.data.documents[index].data["groupName"])
              );
    });
}

используйте вместо listView и получите доступ ко всем данные

1 голос
/ 08 мая 2020

В приведенном выше коде вы можете получить первый из-за for l oop

Ваш код показывает это

 for(int i= 0; i < snapshot.data.documents.length;) {
                    DocumentSnapshot test =
                    snapshot.data.documents[i];
                    print(test['GroupID']);

, но для этого необходимо быть

 for(int i= 0; i < snapshot.data.documents.length;i++) {
                DocumentSnapshot test =
                snapshot.data.documents[i];
                print(test['GroupID']);

, чтобы он мог перемещаться по всем документам

1 голос
/ 08 мая 2020

Вы просто забыли увеличить i на l oop.

 for(int i= 0; i < snapshot.data.documents.length;i++) {
...