【发布时间】:2021-08-04 06:40:53
【问题描述】:
我已按照各种指南使用 StreamProvider 成功地从 Firestore 集合中获取数据。我似乎不太明白如何获取单个文档及其相关字段。
例如,假设我有一个集合“WeatherObs”,其中包含一个名为“5-13-21”的文档,如下所示:
如果我想用我的 StreamProvider 拉入整个集合,我可以轻松地将它放入一个列表中,如下所示:
class FirestoreService {
FirebaseFirestore _db = FirebaseFirestore.instance;
var random = Random();
Stream<List<Weather>> getWeather() {
return _db.collection('TodaysWeather').snapshots().map((snapshot) => snapshot.docs.map((event) => Weather.fromJson(event.data())).toList());
}
但是,我终其一生都无法弄清楚如果我只想以相同的方式访问单个文档。我能够以键值对的形式访问文档,因此我可以使用 fromJson。但是当我访问调用另一个类中的方法的Provider对象时,它总是返回null。
Stream<Weather> getWeather() {
return _db.collection('TodaysWeather').doc('5-13-21').snapshots().map((event) => FastFoodHealthEUser.fromJson(event.data()));
}
在最后一个示例中,我没有返回列表,但我认为列表不是必需的,因为我应该能够访问天气对象并访问其属性,例如高(字符串类型)。是否可以以相同的方式访问单个文档?
【问题讨论】:
标签: firebase flutter google-cloud-firestore