私はこのデータスナップショットを持っています
"{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;
}
これが私がやったことです
Map<dynamic, dynamic> map = snapshot.data.snapshot.value;
map.values.toList()[index]["pic"]
必要なのは、snapshot.valueのvalues
を反復処理してリストに追加することです。
疑似コード:
for (var value in snapshot.value.values){
myList.add(value);
}
次に、ユースケースに応じて、次のようなことができるようになります。
myList.forEach((v)=>print(v["pic"].toString)); //just an example
確かな場合snapshot子の使用valueメンバーとしてMap Object
snapshot.value['key'];
このコードはノードのキーを取得します:
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