Я получаю эту ошибку, RangeError (index): Invalid value: Допустимый диапазон значений пуст: 2. Как мне это исправить?

avatar
Shaun Thomas
8 августа 2021 в 18:06
647
0
0

Это точная ошибка, которую я получаю. RangeError (индекс): недопустимое значение: допустимый диапазон значений пуст: 2 Соответствующий виджет, вызывающий ошибку, был StreamBuilder<список>

Виджет, на который ссылается ошибка:

StreamBuilder<List<QuestionDbRecord>>(
                              stream: queryQuestionDbRecord(
                                queryBuilder: (questionDbRecord) =>
                                    questionDbRecord.where('questionid',
                                        isEqualTo: quizpageMcqTopicRecommendationsRecord.questionList[2]),
                                singleRecord: true,
                              ),
                              builder: (context, snapshot) {
                                // Customize what your widget looks like when it's loading.
                                if (!snapshot.hasData) {
                                  return Center(
                                    child: SizedBox(
                                      width: 50,
                                      height: 50,
                                      child: SpinKitThreeBounce(
                                        size: 50,
                                      ),
                                    ),
                                  );
                                }

QuestionDbRecord — это коллекция в firestore. В нем есть поле с именем questionid, которое я использую, чтобы получить именно тот документ с вопросом, который мне нужен.

questionList — это список из четырех вопросов. Третий из них я использую, чтобы получить нужный мне вопрос.

Было бы очень хорошо, если бы вы могли уточнить, где я ошибся, потому что иначе мой придурок потратит час, пытаясь получить то, что вы пытались сказать.

Фрагмент кода, в котором был инициализирован quizpageMcqTopicRecommendationsRecord. Код для всей страницы довольно длинный, поэтому дайте мне знать, если потребуется дополнительная информация.

  Widget build(BuildContext context) {
    return StreamBuilder<List<TopicRecommendationsRecord>>(
      stream: queryTopicRecommendationsRecord(
        queryBuilder: (topicRecommendationsRecord) => topicRecommendationsRecord
            .where('uid', isEqualTo: currentUserReference)
            .where('topicName', isEqualTo: widget.topicName),
        singleRecord: true,
      ),
      builder: (context, snapshot) {
        // Customize what your widget looks like when it's loading.
        if (!snapshot.hasData) {
          return Center(
            child: SizedBox(
              width: 50,
              height: 50,
              child: SpinKitThreeBounce(
                size: 50,
              ),
            ),
          );
        }
        List<TopicRecommendationsRecord>
            quizpageMcqTopicRecommendationsRecordList = snapshot.data;
        // Customize what your widget looks like with no query results.
        if (snapshot.data.isEmpty) {
          return Container(
            height: 100,
            child: Center(
              child: Text('No results.'),
            ),
          );
        }
        final quizpageMcqTopicRecommendationsRecord =
            quizpageMcqTopicRecommendationsRecordList.first;
        return Scaffold(
Источник
Victor Eronmosele
8 августа 2021 в 23:39
0

Откуда берется quizpageMcqTopicRecommendationsRecord? Можешь выложить на весь экран?

Shaun Thomas
9 августа 2021 в 05:21
0

Привет, @VictorEronmosele, я добавил это сейчас. Полный экран - это 1000+ строк кода

Ответы (0)