Dictionary 颤振与振动;云商店。将文档转换为地图
我试过firebase实时数据库。这是我用来从数据库中提取数据并将其转换回地图的方法。然而,最近我切换到cloud_firestore,我不知道如何执行类似的功能。 请任何人帮帮我Dictionary 颤振与振动;云商店。将文档转换为地图,dictionary,flutter,dart,google-cloud-firestore,Dictionary,Flutter,Dart,Google Cloud Firestore,我试过firebase实时数据库。这是我用来从数据库中提取数据并将其转换回地图的方法。然而,最近我切换到cloud_firestore,我不知道如何执行类似的功能。 请任何人帮帮我 Future<void> fetchAndSetProducts() async { const url = 'https://flutter-update.firebaseio.com/products.json'; try { final response = await http.get(url
Future<void> fetchAndSetProducts() async {
const url = 'https://flutter-update.firebaseio.com/products.json';
try {
final response = await http.get(url);
final extractedData = json.decode(response.body) as Map<String, dynamic>;
if (extractedData == null) {
return;
}
final List<Product> loadedProducts = [];
extractedData.forEach((prodId, prodData) {
loadedProducts.add(Product(
id: prodId,
title: prodData['title'],
description: prodData['description'],
price: prodData['price'],
isFavorite: prodData['isFavorite'],
imageUrl: prodData['imageUrl'],
));
});
_items = loadedProducts;
notifyListeners();
} catch (error) {
throw (error);
}
}
Future fetchAndSetProducts()异步{
常量url=https://flutter-update.firebaseio.com/products.json';
试一试{
最终响应=等待http.get(url);
最终extractedData=json.decode(response.body)作为映射;
if(extractedData==null){
返回;
}
加载产品的最终列表=[];
extractedData.forEach((prodId,prodData){
loadedProducts.add(产品)(
id:prodId,
标题:prodData[“标题”],
描述:prodData['description'],
价格:prodData[‘价格’],
isFavorite:prodData['isFavorite'],
imageUrl:prodData['imageUrl'],
));
});
_项目=装载的产品;
notifyListeners();
}捕获(错误){
抛出(错误);
}
}
这是我试图修改代码,以便与前面的代码一样工作:
Future<void> fetchAndSetFoods() async {
try {
final response = databaseReference.collection('Food').getDocuments();
final extractedData = json.decode(response) as Map<String, dynamic>;
if (extractedData == null) {
return;
}
final List<Foods> loadedFoods = [];
extractedData.forEach((prodId, prodData) {
loadedFoods.add(FoodInfo(
id: prodId,
title: prodData['title'],
description: prodData['description'],
affordability: prodData['affordability'],
image: prodData['image'],
serviceTime: prodData['serviceTime'],
cuisine: prodData['cuisine'],
));
});
_foods = loadedFoods;
notifyListeners();
} catch (error) {
throw (error);
}
}
Future fetchAndSetFoods()异步{
试一试{
最终响应=databaseReference.collection('Food').getDocuments();
最终extractedData=json.decode(response)为Map;
if(extractedData==null){
返回;
}
最终装载食品清单=[];
extractedData.forEach((prodId,prodData){
loadedFoods.add(FoodInfo(
id:prodId,
标题:prodData[“标题”],
描述:prodData['description'],
可承受性:prodData[“可承受性”],
image:prodData['image'],
serviceTime:prodData['serviceTime'],
烹饪:prodData[“烹饪”],
));
});
_食物=装载的食物;
notifyListeners();
}捕获(错误){
抛出(错误);
}
}
新代码会发生什么?cloud firestore的语法与实时数据库不同。我不知道如何像第一个代码那样将数据从cloudfirestore提取到map格式。