Серый прямоугольник вместо списка

Вместо списка на экране серый прямоугольник или красная заглушка с ошибкой. Разберёмся, что это значит.

инфо
Что нужно заранее
  • Запрос подключён к коллекции Firestore или к CMS.
  • Приложение собирается и запускается в Run и Test Mode.

Серый прямоугольник означает, что запрос к бэкенду не вернул результат. Красный экран в Test Mode — ошибка времени выполнения: данные не те, которых ждал виджет.

  1. Посмотрите на результат запроса

    • Запрос отработал и что-то вернул — список заполнится.
    • Записей под условие не нашлось — покажется настроенное пустое состояние.
    • Запрос упал — серый прямоугольник в Run Mode или красный экран в Test Mode.

    Настроенное пустое состояние списка

    совет

    Всегда настраивайте пустое состояние. Тогда сразу видно разницу между «данных нет» и «запрос не отработал».

  2. Как это выглядит в разных режимах

    • Run Mode — серый прямоугольник.
    • Test Mode — красный экран с текстом ошибки.

    Запрос отработал, но записей нет:

    Пустой результат запроса

    Запрос упал:

    Ошибка запроса в Test Mode

  3. Проверьте данные на null

    Пустое значение в поле, которое используется в фильтре, форматировании или условии видимости, роняет запрос или виджет.

    1. Просмотрите данные в Firebase или CMS — нет ли null в важных полях.
    2. Особое внимание — полям из фильтров и форматирования.
    3. Классический случай: поле created_time пустое, а виджет пытается отформатировать из него дату.

    Пустое поле в документе

    Ошибка форматирования даты

    заметка

    Виджеты, зависящие от полей, которые могут оказаться пустыми, прячьте условием видимости.

  4. Осторожнее с запросами по ссылке на документ

    Если внутри элемента списка стоит запрос документа по ссылке, а ссылка пустая или ведёт в никуда, запрос сломается.

    Битая ссылка на документ

    заметка

    Такой виджет всегда закрывайте условием видимости — пусть он показывается, только когда ссылка действительно есть.

инфо
Коротко
  • Серый прямоугольник — запрос упал.
  • Красный экран — ошибка времени выполнения в Test Mode.
  • Чаще всего виноваты пустые значения в базе.
  • Пустое состояние и условия видимости решают большую часть таких проблем.
перевод официальной документации FlutterFlow

обновлено

⌕ ESC