【发布时间】:2021-10-07 08:59:09
【问题描述】:
由于某种原因,我的数据变量在我的 .get() 调用之外一直返回 null。在 .get() 调用中,当我打印数据时,我得到了预期的地图。任何见解表示赞赏!给我带来问题的代码部分用星号表示。
class _MessagesScreenState extends State<MessagesScreen> {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
Expanded(
child: Container(
decoration: BoxDecoration(
color: Colors.white,
),
child: StreamBuilder(
stream: rtdb
.child('messages')
.child(widget.currentUserID)
.onValue,
builder: (context, snapshot) {
final messageList = <BuildMessages>[];
if (snapshot.hasData) {
final users = Map<String, dynamic>.from(
snapshot.data.snapshot.value);
users.forEach((key, value) {
**var data;**
**usersRef.child(key).get().then((value) {
data = new Map<String, dynamic>.from(value.value);
});**
final messageTile = BuildMessages(
name: data['userFirstName'] +
' ' +
data['userLastName'],
picture: data['userImageUrl'],
otherID: data['userID'],
);
;
messageList.add(messageTile);
});
}
return ListView.builder(
padding: EdgeInsets.only(top: 15.0),
itemCount: messageList.length,
itemBuilder: (context, index) {
return messageList[index];
},
);
}),
),
),
],
),
);
}
【问题讨论】:
-
你好!是的,您的回答非常有帮助。谢谢弗兰克
标签: firebase flutter dart firebase-realtime-database