Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dictionary 颤振与振动;云商店。将文档转换为地图_Dictionary_Flutter_Dart_Google Cloud Firestore - Fatal编程技术网

Dictionary 颤振与振动;云商店。将文档转换为地图

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

我试过firebase实时数据库。这是我用来从数据库中提取数据并将其转换回地图的方法。然而,最近我切换到cloud_firestore,我不知道如何执行类似的功能。 请任何人帮帮我

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格式。