Как получить временное расстояние от пожарного магазина до флаттера - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу получить временное расстояние от пожарного депо, и есть 93 документа, поэтому эта функция занимает всего несколько минут, чтобы go просмотреть все документы

, и это мой код для расчета -

  int length;
  DateTime earlyTime;
  DateTime lateTime;
  String name;
  String finalName;

  QuerySnapshot snaps =
      await Firestore.instance.collection('nameDetails').getDocuments();
  List<DocumentSnapshot> snapCount = snaps.documents;
  length = snapCount.length;
  // Count of Documents in Collection

  for (int count = 1; count < length; count++) {
    print(count);
    await Firestore.instance
        .collection('nameDetails')
        .document(count.toString())
        .get()
        .then(
      (time) {
        //Parsing the strings into DateTime
        earlyTime = DateTime.parse(time['beforeTime']);
        lateTime = DateTime.parse(time['afterTime']);
        name = time['name'];
        print(name);
      },
    );
    if (birthDayTime.isAfter(earlyTime) && birthDayTime.isBefore(lateTime)) {
      name = finalName;
      break;
    }
  }
} 

Так есть ли эффективный способ сделать это? если кто-то может мне помочь, было бы здорово :) 1006

1 Ответ

1 голос
/ 27 апреля 2020

Вы извлекаете документы из коллекции nameDetails дважды, что на самом деле не нужно. Если вы просто хотите получить расстояние, вы можете просто сделать следующее:

          QuerySnapshot snaps =
              await Firestore.instance.collection('nameDetails').getDocuments();
          for (var docs in snaps.documents) {
            earlyTime = DateTime.parse(docs['beforeTime']);
            lateTime = DateTime.parse(docs['afterTime']);
            name = docs['name'];
            print(name);
            if (birthDayTime.isAfter(earlyTime) &&
                birthDayTime.isBefore(lateTime)) {
              name = finalName;
              break;
            }
          }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...