我正在开发使用Firebase,Flutter和vscode的登录系统。
我想知道如何处理Firebase生成的异常。
如果EMAIL已经注册。
当前生成错误:
Exception has occurred.
PlatformException (PlatformException(ERROR_EMAIL_ALREADY_IN_USE, The email address is already in use by another account., null))
如果电子邮件已经注册,我想通知用户。
码:
Future<void> signUp({@required Map<String, dynamic> userData,@required String pass,@required VoidCallback onSuccess,@required VoidCallback onFail}) async{
isLoading = true;
notifyListeners();
_auth.createUserWithEmailAndPassword(
email: userData["email"],
password: pass
).then((user) async{
firebaseUser = user;
await _saveUserData(userData);
onSuccess();
isLoading = false;
notifyListeners();
}).catchError((e){
print(e);
onFail();
isLoading = false;
notifyListeners();
});
}
最佳答案
如果要在发出ERROR_EMAIL_ALREADY_IN_USE时执行后续操作。
我认为捕获PlatformException并使用code
分支该过程是一个好主意,如下所示。
try {
final result = await _auth.createUserWithEmailAndPassword(
email: email,
password: password,
);
} on PlatformException catch (exception) {
switch (exception.code) {
case 'ERROR_EMAIL_ALREADY_IN_USE':
// do something...
default:
break;
}