我是新手。到目前为止,这就是我所做的(这不是完整的代码)。您可以看到,我正在尝试从firestore中获取一些数据。问题是,当我进入页面时,数字值始终为零。但是,如果我重新加载页面,它将为我提供正确的值。我为什么呢?我认为这与未来和异步有关。但是我还不太了解它们。
Widget build(BuildContext context) {
someMethod() {
return Firestore.instance
.collection('comments')
.where("Post", isEqualTo: widget.snapshot.documentID)
.getDocuments();
}
someMethod().then((QuerySnapshot snapshot) {
if (snapshot.documents.isNotEmpty) {
db = snapshot.documents;
}
});
int number = db?.length ?? 0;
print(number);
}
答案 0 :(得分:2)
您必须使用setState()通知框架该对象的内部状态已更改。
someMethod().then((QuerySnapshot snapshot) {
if (snapshot.documents.isNotEmpty) {
setState(() {
db = snapshot.documents;
});
}
});