# #javascript #firebase #flutter #dart
Вопрос:
Я пытаюсь получить список документов из коллекции, но у меня ошибка «вне зоны действия». Вы можете увидеть функцию, которая возвращает список, а затем вывод.
Future<List> getPreAppliedUserList() async {
try {
List? userList = [""];
QuerySnapshot querySnapshot =
await _db!.collection(_preAppliedUserCollection).get();
List allData = querySnapshot.docs.map((doc) => doc.data()).toList();
print(allData.length); /// 2
for (int i = 0; i <= allData.length; i ) {
userList[i] = await allData[i]['customerNumber'];
}
return userList;
} on FirebaseException {
print("getPreAppliedUserList error");
var x; ///todo
return x;
}
}
Ошибка:
Error: RangeError (index): Index out of range: index should be less than 1: 1
Ответ №1:
Массивы проиндексированы на 0, а allData.length
длина равна 2. Поэтому вам следует использовать:
for (int i = 0; i < allData.length; i ) {
userList[i] = await allData[i]['customerNumber'];
}
это означает, что удалите <=
и замените его, <
так как у вас нет элемента с индексом 2