【问题标题】:How to loop through a Firebase datasnapshot sub childrens? Flutter如何循环通过 Firebase 数据快照子子项?扑
【发布时间】:2019-01-12 18:14:44
【问题描述】:

我有一个 DataSnapshot JSON 对象:

{fridge2: true, fridge1: true} //data pulled from a real time firebase database

我必须将fridge2fridge1 放在这样的列表中:

List<String> fridges;

我的尝试:

DataSnapshot fridgesDs = snapshot.value['fridges'];

    for (var fridge in fridgesDs) {
      if (fridge.value) {
        fridges.add(fridge.key);
      }
    }

给我这个错误:

type '_InternalLinkedHashMap<dynamic, dynamic>' is not a subtype of type 'Iterable<dynamic>'

【问题讨论】:

    标签: firebase firebase-realtime-database dart flutter


    【解决方案1】:

    我解决了。我以前用print(fridgesDs.runtimeType); 来获取firebase 返回的变量类型。它实际上是一个 HashMap:_InternalLinkedHashMap&lt;dynamic, dynamic&gt; 将返回的值转换为 Map。最后,我使用 forEach 循环遍历地图。这是最终版本:

     Map<dynamic, dynamic> fridgesDs = snapshot.value['fridges'];
    //    print(fridgesDs.runtimeType);
        fridgesDs.forEach((key, value) {
          if (value) {
            fridges.add(key);
          }
        });
    

    【讨论】:

      【解决方案2】:

      你只插入钥匙 你必须插入我认为的键和值 或者告诉我你的列表是什么 ..ArrayList 、堆栈、链接列表或树 我想你需要做的所有事情 .. 冰箱.add(fridge.key,fridge.value);

      【讨论】:

        猜你喜欢
        • 2017-01-30
        • 1970-01-01
        • 1970-01-01
        • 2017-01-30
        • 1970-01-01
        • 1970-01-01
        • 2020-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多