如何遍历Firebase datasnapshot子项?扑 [英] How to loop through a Firebase datasnapshot sub childrens? Flutter

查看:78
本文介绍了如何遍历Firebase datasnapshot子项?扑的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个DataSnapshot JSON对象:

I have a DataSnapshot JSON object :

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

我必须放入 fridge2 fridge1 在这样的列表中:

I have to put fridge2 and fridge1 in a list like this:

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>'


推荐答案

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

I solved it. I used to print(fridgesDs.runtimeType); to get the type of variable returned by firebase. it is actually a HashMap: _InternalLinkedHashMap<dynamic, dynamic> The casted the returned value into a Map. Finally, I used forEach to loop through the map. Here is the final version:

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

这篇关于如何遍历Firebase datasnapshot子项?扑的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆