Как получить данные из Firestore и отобразить их в Flutter?

#flutter

#flutter

Вопрос:

Я новичок в Flutter и firestore. У меня есть коллекция в firestore в следующем порядке: событие-> ‘идентификатор пользователя’ -> сообщение-> ‘идентификатор сообщения ->’сведения о сообщении’. вы можете увидеть здесь Firestore1 и здесь Firestore2

Когда я пытаюсь получить ‘postdetails’, единственное, что я получаю, это ‘Экземпляр ‘DocumentSnapshot’, см. Здесь Ответ

Что я пробовал:

  getEvents() async {
setState(() {
  _isLoading = true;
});

DocumentSnapshot snapshot = await eventref
    .doc(uid)
    .collection('post')
    //.orderBy('Date', descending: true)
    .doc()
    .get();

print('Snapshot : ${snapshot}');
 return snapshot;
// setState(() {
//   _isLoading = false;

//   print(event);
// });
 

}

Я также создал модель для событий. Смотрите Здесь Модель событий

Я хочу получить данные и отобразить их в виде карты. Любая помощь? Заранее спасибо

Ответ №1:

 print('Snapshot : ${snapshot.data()["Date"]}');
 

С помощью data() вы можете получить доступ к значению полей.

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

1. он выдал ошибку: E / flutter (22875): попытался вызвать: [](«Дата») E / flutter (22875): #0 Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5) E / flutter (22875): #1 _TimelineState.getEvents

2. попробуйте snapshot.data()

Ответ №2:

 snapshot.get("field_name")
 

Вам нужно попросить flutter получить поля внутри моментального снимка документа.

Потребуется более подробный порядок вашей коллекции firestore и документ для предоставления точного кода. Вы можете следовать приведенному ниже примеру:

В firestore:

 -Collection: "users"
---Document: "userId"
-------Field: "username"
-------Field: "birthdate"
 

Код:

 DocumentSnapshot doc =await _firestore.collection("users").doc(userId).get();
print(doc.get('username'));
print(doc.get('birthdate'));