【发布时间】:2020-07-30 05:47:50
【问题描述】:
我有两个文件,在一个文件中,我有 auth 类,它处理身份验证。
错误处理也在 auth 类中,我所要做的就是将错误传递到登录屏幕,
这是我的身份验证类
Future<FirebaseUser> handleSignInEmail(String email, String password) async {
FirebaseUser user;
var errorMessage;
try {
AuthResult result = await _auth.signInWithEmailAndPassword(
email: email, password: password);
user = result.user;
} catch (error) {
switch (error.code) {
case "ERROR_INVALID_EMAIL":
errorMessage = "Your email address appears to be malformed.";
break;
case "ERROR_WRONG_PASSWORD":
errorMessage = "Your password is wrong.";
break;
case "ERROR_USER_NOT_FOUND":
errorMessage = "User with this email doesn't exist.";
break;
case "ERROR_USER_DISABLED":
errorMessage = "User with this email has been disabled.";
break;
case "ERROR_TOO_MANY_REQUESTS":
errorMessage = "Too many requests. Try again later.";
break;
case "ERROR_OPERATION_NOT_ALLOWED":
errorMessage = "Signing in with Email and Password is not enabled.";
break;
default:
errorMessage = "An undefined Error happened.";
}
}
if (errorMessage != null) {
Body(
key: errorMessage,// the error occurs here :(
);
return Future.error(errorMessage);
}
return user;
}
这是我的 body 类,我必须将错误传递到其中。
class Body extends StatefulWidget {
final errorMess;
Body({Key key, this.errorMess}) : super(key: key);
@override
_BodyState createState() => _BodyState();
}
在我的Bodystate中,我有这个功能,
geterrorMesage() {
print(widget.errorMess);
}
当我尝试调用此函数时,发生异常-
参数类型“String”不能分配给参数类型“Key”。
如何解决这个问题?
【问题讨论】:
标签: firebase flutter dart firebase-authentication