Flutter异步表单验证

时间:2018-11-01 15:48:11

标签: flutter

在这个问题上,我和发帖人有同样的问题: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;
              },

谢谢您的帮助。

1 个答案:

答案 0 :(得分:1)

方法checkUser将开始调用Firebase。 await关键字告诉编译器我们需要该调用的输出,但是不需要阻止其他所有程序运行。调用完成后,该函数将返回布尔值,指示给定用户是否存在。

在另一个问题上,checkUser通过onPressed调用被调用,该调用等待返回值并将其分配给usernameValidator变量-因此使其成为布尔值。