Необработанное исключение: NoSuchMethodError: метод 'toDate' был вызван для нуля - PullRequest
0 голосов
/ 04 марта 2019

Я разрабатываю приложение для чата с использованием Firebase .

. Некоторое время я получаю эту ошибку Unhandled Exception: NoSuchMethodError: The method 'toDate' was called on null.

Получениеошибка при преобразовании Timestamp в DateTime с использованием toDate().

ОТКАЗЫВАЕТСЯ ОШИБКА НА НЕКОТОРОЕ ВРЕМЯ И ЗАТЕМ ОШИБКА исчезает.

ПОЖАЛУЙСТА, РАССМОТРИТЕ ЭТОТ GIF.

THIS

ЗДЕСЬ FIRESTORE DATATYPE AS TimeStamp.

enter image description here

КОД ИСТОЧНИКА

class ChatMessageModel {
  bool isSentByMe;
  String msg = '';

  ///SERVER TIME
  Timestamp time;
  DateTime localTime;
  String timeStamp;
  String fromUid;
  String toUid;

  ChatMessageModel._();

  ChatMessageModel.fromSnapshot(DocumentSnapshot snapshot) {
    this.isSentByMe =
        snapshot.data['from'] == LoginBloc.instance.firebaseUser.uid;
    this.msg = snapshot.data['msg'];
    this.timeStamp = snapshot.data['time'].toString();
    this.time = snapshot.data['time'];
    this.fromUid = snapshot.data['from'];
    this.toUid = snapshot.data['to'];
    this.localTime = this.time.toDate(); //ERROR
  }
}

СПАСИБО ЗА ПРЕДЕЛА.

1 Ответ

0 голосов
/ 04 марта 2019

Ваш код пытается преобразовать time в Date, прежде чем он будет выбран, короткий обходной путь будет инициализировать вашу переменную time с текущим временем до загрузки значения сервера:

  Timestamp time = new Timestamp( new Date(2019,3,4) );

другойРешением было бы использование async метода для await значения с сервера перед его преобразованием, которое вы не можете себе позволить, учитывая, что хотите использовать его в системе мгновенного обмена сообщениями. Более подробную информацию можно найти в официальной базе Firebase * 1009.* документация и Android-разработчик документация .

Обратите внимание, что приведенный выше код приведет к Timestamp, указывающему на полночь, но это не должно вызывать проблем, поскольку этократкий заполнитель по сравнению со скоростью отклика Firebase

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...