Как получить конкретные значения из снимка данных в флаттере? - PullRequest
0 голосов
/ 27 мая 2018

У меня есть этот снимок экрана

 "{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"] не работает, возвращает ноль.

заранее спасибо

вот как я получил снимок данных для моего будущего сборщика

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 голосов
/ 07 июня 2018

вот что я сделал

Map<dynamic, dynamic> map = snapshot.data.snapshot.value;

map.values.toList()[index]["pic"]
0 голосов
/ 31 июля 2018

Этот код возвращает ключ узла:

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;
........

result = 6TLD6RFIa0T0a3CuRW9FpB4HlXf2

0 голосов
/ 28 мая 2018

Вам нужно перебрать values в вашем snapshot.value и добавить их в список.

псевдокод:

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

Тогда вы сможетесделать что-то подобное в зависимости от вашего варианта использования:

myList.forEach((v)=>print(v["pic"].toString)); //just an example
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...