json - 尝试使用Firebase来获取我的flutter应用程序的获取请求并出现错误

标签 json firebase flutter dart async-await

enter image description here [这是前面板,它是gridTile,并从firebase获取数据

<!-- this is the method which the grid time is using to fetch data from firebase-->

 Future<void> fetchAndSetProducts() async {
    const url ='MY flutter url';
    try {
      final response = await http.get(url);
      final extractedData = json.decode(response.body) as Map<String, dynamic>;
      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);
    }
  }


] 2

enter image description here

最佳答案

这是您的json:

{
   "-M1We9LYxWhijvoECbpY":{
      "description":"Abe Kya be saale",
      "imageURL":"https://cdn.wallpapersafari.com/89/2/Lnxobm.jpg",
      "isFavorite":false,
      "price":747.0,
      "title":"test"
   },
   "-M1WlRlzv8rYwhGklkyc":{
      "description":"Abe sale nikal na",
      "imageURL":"https://cdn.wallpapersafari.com/89/2/Lnxobm.jpg",
      "isFavorite":false,
      "price":43.0,
      "title":"fdddfff"
   },
   "-M1XmbG11YGDgSdJyfvm":{
      "description":"dfvdfvfdvfvfdb",
      "imageURL":"https://cdn-products.eneba.com/resized-products/qoA2QojrFaqg8VtfKSEJm1jsXU-9UEJJSNf2WTvMBjE_390x400_2x-0.jpeg",
      "isFavorite":false,
      "price":74.0,
      "title":"new"
   },
   "-M1axCdqSDIIijYYSXDX":{
      "description":"gctdcgchvhgvggh",
      "imageURL":"https://cdn.pixabay.com/photo/2016/10/02/22/17/red-t-shirt-1710578_1280.jpg",
      "isFavorite":false,
      "price":411.0,
      "title":"bhbn"
   },
   "-M1i_KbskfnTLxfFRIiu":{
      "description":"dzvfvbvfbvggfbvxfgb gfvb ",
      "imageUrl":"https://5.imimg.com/data5/IJ/JK/MY-11744895/playing-football-500x500.jpg",
      "isFavorite":false,
      "price":65.0,
      "title":"fbvfbvc cv"
   }
}

除了一个包含imageURL属性的节点外,所有节点都包含imageUrl属性。因此,首先您需要更改json,以便所有节点都将包含imageURL(大写URL),然后在您的代码中执行以下操作:
  extractedData.forEach((prodId, prodData) {
        loadedProducts.add(Product(
          id: prodId,
          title: prodData['title'],
          description: prodData['description'],
          price: prodData['price'],
          isFavorite: prodData['isFavorite'],
          imageUrl: prodData['imageURL'],
        ));
      });

关于json - 尝试使用Firebase来获取我的flutter应用程序的获取请求并出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60558658/

相关文章:

javascript - 使用 ajax 的动态内容(ruby on rails)

java - flutter : NoSuchMethodError: The getter 'nom' was called on null. 接收器; null 尝试调用:nom

javascript - 如何使用 Cloud Functions for Firebase 与 .onWrite 或 onchange 比较新旧值?

javascript - Firebase 功能正在部署,但未显示在控制台中

android - 尝试添加 firebase ml 视觉图像标签模型时 Gradle 同步失败

flutter - 如何在泛型 Dart 方法中对泛型类型 T 实现实现约束?

dart - Flutter - 在应用交互中生成

javascript - JSON 插值

php - 使用 Curl 在 PHP 中使用用户名和密码访问 API

java - 是否可以在 Grails 操作中使用 Spring 的 @RequestBody?