#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'));