web-dev-qa-db-ja.com

Flutterのデータスナップショットから特定の値を取得するにはどうすればよいですか?

私はこのデータスナップショットを持っています

 "{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を返します。

前もって感謝します

これは私の将来のビルダーのためにdatasnapshotを受け取った方法です

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

  _objdatabase = snapshot.value;

});
return _objdatabase;

}

5
Daniel

これが私がやったことです

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

map.values.toList()[index]["pic"]
4
Daniel

必要なのは、snapshot.valueのvaluesを反復処理してリストに追加することです。

疑似コード:

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

次に、ユースケースに応じて、次のようなことができるようになります。

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

確かな場合snapshot子の使用valueメンバーとしてMap Object

snapshot.value['key'];
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;
........

result = 6TLD6RFIa0T0a3CuRW9FpB4HlXf2

0
Aldo Basantes