Flarter Dart App RangeError только на определенных устройствах (не на симуляторе) - PullRequest
0 голосов
/ 07 июня 2018

В приложении My Flutter есть список, который загружает данные из базы данных Firebase Firestore.Он прекрасно загружается на всех устройствах симулятора (и некоторых реальных устройствах iOS), но работает только на реальных устройствах iPhone 7.На iPhone7 я получаю следующую ошибку:

RangeError (index): Invalid value: Valid value range is empty: 0

Я не совсем уверен, с чего начать отладку этой ошибки.Любое руководство будет с благодарностью!

Вот мой код генератора списка:

return new ListView(
  physics: const AlwaysScrollableScrollPhysics(),
  children: snapshot.data.documents.map((DocumentSnapshot document) {
    return _buildActivityItem(context,
      new Activity(
        activity: document['activity'],
        dateCreated: document['dateCreated'],
        food: document['food'],
        id: document.documentID,
        sentiment: document['sentiment'],
        text: document['text'],
      )
    );
  }).toList(),
);

Widget _buildActivityItem(BuildContext context, Activity activity) {
  // Format Date
  var formatter = new DateFormat('E., MMMM d').add_j();
  var today = new DateFormat('E').format(new DateTime.now()) == new DateFormat('E').format(activity.dateCreated);
  String formattedDateCreated = today ? new DateFormat().add_j().format(activity.dateCreated) : formatter.format(activity.dateCreated);

  // Format Activity
  String emoji = activity.activity == 'Exercise' ? '?‍' 
    : activity.food.length > 0 ? '?' 
      : '?';

  // List Foods
  String getFoodList = activity.food.join(', ');

  return Container(
    decoration: new BoxDecoration(
      border: new Border(
        bottom: new BorderSide(width: 1.0, color: Theme.of(context).dividerColor)
      )
    ),
    child: ListTile(
      leading: new Text(
        emoji,
        style: new TextStyle(
          fontSize: 34.0
        )
      ),
      title: new Text(activity.text),
      subtitle: activity.activity.length > 0 ?  
        new Text(activity.activity )
        : activity.food.length > 0 ? new Text(getFoodList) 
          : null,
      trailing: new Text(formattedDateCreated),
    ),
  );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...