【发布时间】:2021-02-05 16:26:46
【问题描述】:
在颤振中,我从 firebase 数据库中读取了两次。 第一个代码读取在数组中找到的文档的所有引用。 下一个代码遍历所有引用并在 firebase 中加载该引用的文档数据。 当我调试时,只要我在 forEach 循环中,rests 数组就会被填充。 但是一旦 forEach 循环完成,其余列表是空的吗?怎么会这样? 我想要做的是继续将数据添加到 CustomerRestaurantsWithLunchCard = c 到类中存在的餐厅列表中
Future<CustomerRestaurantsWithLunchCard>
customerRestaurantsWithLunchards() async {
var c = await _service.document(
path: APIPath.customerRestaurantsWithLunchCardsDocument(customerId),
builder: (data, id) =>
CustomerRestaurantsWithLunchCard.fromMap(data, id));
var rests = new List<Restaurant>();
c.myRestaurantsReferences.forEach((reference) {
_service.document(
path: (reference),
builder: (data, id) => {
rests.add(new Restaurant(
id: id,
)),
});
});
c.restaurants = rests;
return c;
}
Future<T> document<T>({
@required String path,
@required T builder(Map<String, dynamic> data, String id),
}) {
final reference = FirebaseFirestore.instance.doc(path);
final snapshots = reference.get();
return snapshots.then((value) => builder(value.data(), value.id));
}
【问题讨论】: