Я запрашиваю базу данных Firebase в реальном времени, и в самом запросе печать snapshot.value выводит правильные значения записей, но когда я пытаюсь преобразовать отдельные записи в Item, все значения равны нулю. ForEach l oop выдает ошибку: type '(Dynami c) => Null' не является подтипом типа '(Dynami c, Dynami c) => void' of 'f' Можете ли вы видите, что я делаю не так?
await _databaseReference
.child('Continent')
.child('Europe')
.child('Country')
.child(countryDb)
.child('Region')
.child(regionDb)
.child('City')
.child(cityDb)
.child('Catalog')
.orderByChild('Product Category')
.equalTo(query)
.once()
.then((snapshot) {
print(
' local db result is $snapshot, value is ${snapshot.value}, item is ${Item.fromFirebase(snapshot.value).toMap().toString()}'); //item's values are null
snapshot.value.forEach((childSnapshot) {
// results.add(Item.fromFirebase(childSnapshot));
// print('childSnapshot is : ${Item.fromFirebase(childSnapshot)}');
print('childSnapshot is : $childSnapshot');
});
return;
});
Item.fromFirebase:
static Item fromFirebase(Map<dynamic, dynamic> map) {
return Item(
itemId: map['Product Id'],
brand: map['Brand'],
itemName: map['Product Name'],
category: map['Product Category'],
price: map['Product Price'],
description: map['Product Description'],
vendor: map['Product Vendor'],
code: map['Code'],
isPromotion: map['isPromotion'],
imageUrl: map['Product Picture Url']);
}