Моя структура Firebase выглядит так:
Я хочу получить список groupName в FirebaseAnimatedList.
Как этого добиться?
Мой текущий код:
chatGroupNameReference = FirebaseDatabase.instance.reference().child("chat_group_message_user_info").child(widget.user.uid);
body: new Container(
child: new Flexible(
child: new FirebaseAnimatedList(
query: chatGroupNameReference,
padding: const EdgeInsets.all(8.0),
defaultChild: Center(child: CircularProgressIndicator(backgroundColor: Colors.deepPurpleAccent,),),
itemBuilder: (_, DataSnapshot messageSnapshot,
Animation<double> animation, int index) {
return Text("Group Name will be here")
},
),
)
)
);
(_, DataSnapshot messageSnapshot,
Animation<double> animation, int index)
После этой строки вы можете использовать FutureBuilder
для получения данных из базы данных Firebase.
Например вот так Есть ли способ сообщить списку firebase ожидаемую высоту виджета до его загрузки в анимированном списке firebase?
Для запроса вложенного дочернего ключа нам понадобится FutureBuilder с FirebaseAnimatedList:
chatGroupNameReference = FirebaseDatabase.instance.reference().child("chat_group_message_user_info").child(widget.user.uid);
body: new FirebaseAnimatedList(
defaultChild: Center(child: new CircularProgressIndicator()),
query: chatGroupNameReference,
sort: (a,b) => (b.key.compareTo(a.key)),
itemBuilder: (_, DataSnapshot messageSnapshot, Animation<double> animation, int index) {
return new FutureBuilder<DataSnapshot>(
future: chatGroupNameReference.child(messageSnapshot.key).once(),
builder: (BuildContext context, snapshot){
return snapshot.hasData ? new Text(snapshot.data.value['groupName']) : new Text("");
},
);
},