【发布时间】:2020-12-17 23:18:40
【问题描述】:
我的问题是,当我从 Firestore 收到信息时,我在控制台中看到它打印但我的 UI 没有更新。但是直到我再次按下显示我的屏幕的图标。我的小部件列表包含在底部导航栏中的屏幕。
我希望代码会发生的情况是,当我在 BottomNavigationBar 中选择包含我的屏幕的选项卡时,小部件列表会出现,其中包含 DocumentID 的名称。好吧,目前我必须再次选择选项卡才能显示它们。
我附上我的代码。
class PruebasVarias extends StatefulWidget {
@override
_PruebasVariasState createState() => _PruebasVariasState();
}
class _PruebasVariasState extends State<PruebasVarias> {
List<String> myData = [];
List<Widget> myListWidget = [];
@override
void initState() {
super.initState();
getallDocument();
}
Future getallDocument()async{
final QuerySnapshot result = await Firestore.instance
.collection("Users")
.getDocuments();
final List<DocumentSnapshot> documentos = result.documents;
documentos.forEach((data) {
myData.add(data.documentID);
print(myData);
});
for (int i = 0; i < (myData.length); i++){
myListWidget.add(Text("${myData[i]}"));
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.red,
title: Text("Documents"),
actions: <Widget>[
],
),
body: Center(
child:
Column(children: myListWidget),
)
);
}
}
【问题讨论】:
-
您要么使用 FutureBuilder,要么在 getallDocument 方法的末尾使用 setState
标签: firebase flutter dart google-cloud-firestore