在这个问题上,我和发帖人有同样的问题:flutter validate form asynchronously。
但是,我在执行此操作时遇到了麻烦,并且了解了验证的工作方式。
首先,此代码返回什么?这会返回布尔值吗?
Future checkUser() async {
var user = await Firestore.instance
.collection('users')
.document(userNameController.text)
.get();
return user.exists;
第二,在这种情况下,userNameValidator是什么?这是布尔值吗?
new TextFormField(
validator: (value) {
return usernameValidator;
},
谢谢您的帮助。
答案 0 :(得分:1)
方法checkUser
将开始调用Firebase。 await
关键字告诉编译器我们需要该调用的输出,但是不需要阻止其他所有程序运行。调用完成后,该函数将返回布尔值,指示给定用户是否存在。
在另一个问题上,checkUser
通过onPressed
调用被调用,该调用等待返回值并将其分配给usernameValidator
变量-因此使其成为布尔值。