Я хочу получить полевые данные из FireStore

# #flutter #google-cloud-firestore

Вопрос:

Я хочу получить [‘Время начала] в этом методе.

Но я не могу этого понять.

Я получаю следующую ошибку

Метод «данные» не определен для типа «Будущее». Попробуйте исправить имя на имя существующего метода или определить метод с именем «данные».

   Future<String> getStudyTime()async {
    final getStartTime =
        await FirebaseFirestore.instance.collection('user').doc(uid()).get().data()['startTime'];
    final DateTime now = DateTime.now();
    final formatTime = DateFormat('hh:mm a').format(now);
    var hh = now.hour;
    var mm = now.minute;
    var hhmm = "$hh:$mm";
    studyTime = int.parse(hhmm);

    return studyTime;
  }
 

[Изображение FireStore]
введите описание изображения здесь

Ответ №1:

Вызов get() возвращает a Future , поэтому вам нужно использовать await on get , чтобы получить его значение:

 final doc = await FirebaseFirestore.instance.collection('user').doc(uid()).get();

final getStartTime = doc.data()['startTime'];
 

Если вы хотите сделать это в одной строке, используйте круглые скобки, чтобы убедиться await , что работа на get() :

 final getStartTime =
  await (FirebaseFirestore.instance.collection('user').doc(uid()).get()).data()['startTime'];
 

Комментарии:

1. Спасибо! Я попробую это сделать.

2. Привет @damnexpress. Есть какие-нибудь новости здесь?

3. Я смог его очистить.спасибо