【发布时间】:2021-10-26 14:24:05
【问题描述】:
我正在尝试这个,但它不起作用:
Future<bool> isGroupNameAvailable(String name) async {
bool result = true;
(await _fireStore.collection("groups").get()).docs.forEach((doc) {
if (name == doc.id) {
result = false;
}
});
return result;
}
FutureBuilder(
future: db!.isGroupNameAvailable(value),
builder: (BuildContext context,
AsyncSnapshot<bool> snap) {
setState(() {
_isGidUnique = snap.data!
? null
: "this group name is taken,try different one";
});
print("*************first" +
_isGidUnique.toString());
return Text("");
},
);
// db!
// .isGroupNameAvailable(value)
// .then((avilible) => setState(() {
// _isGidUnique = avilible
// ? null
// : "this group name is taken,try different one";
// }));
print(_isGidUnique);
return _isGidUnique;
_isGidUnique 应该是字符串“这个组名被占用,尝试不同的”,但它为空 我认为未来的建设者由于某种原因无法工作 帮助:(
【问题讨论】:
-
这能回答你的问题吗? What is a Future and how do I use it?
-
嗨,谢谢,但不是真的。我了解未来的概念,但我真的不明白为什么我的代码不起作用
-
仔细查看 FutureBuilder 示例。您错过了 SnapShot 可能还没有数据的事实。
标签: flutter dart asynchronous future flutter-futurebuilder