首页 文章

如何从flutter中的数据快照中获取特定值?

提问于
浏览
3

我有这个数据快照

"{post1: {pic: https://i.redd.it/ni6zhxh874011.jpg, title: title, desc: desc}, post2: {pic: https://i.redd.it/krj9miojg5011.jpg, title: awsdas, desc: desc2}}"

我想从每个帖子中检索“pic”值 . snapshot.value [“pic”]不起作用,返回null .

提前致谢

这就是我收到未来构建器的数据快照的方法

Future<Object> _obj ()async {
Object _objdatabase;
await FirebaseDatabase.instance.reference().child("Communities").once().then((DataSnapshot snapshot) {
  print(_objdatabase.toString());

  _objdatabase = snapshot.value;

});
return _objdatabase;

}

3 回答

  • 0

    你想要的是在snapshot.value中迭代 values 并将它们添加到列表中 .

    伪代码:

    for (var value in snapshot.value.values){
    myList.add(value);
    }
    

    然后你可以根据你的使用情况做这样的事情:

    myList.forEach((v)=>print(v["pic"].toString)); //just an example
    
  • 2

    这就是我所做的

    Map<dynamic, dynamic> map = snapshot.data.snapshot.value;
    
    map.values.toList()[index]["pic"]
    
  • 1

    此代码检索节点的密钥:

    DataSnapshot usuario = await messagesRef.limitToLast(10).orderByChild("email").equalTo(mail_emparejar).once()
    .then((DataSnapshot snapshot) {
    print(snapshot.value);
    user_uid=snapshot.value.entries.elementAt(0).key;
    ........
    

    结果= 6TLD6RFIa0T0a3CuRW9FpB4HlXf2

相关问题