如何定位Flutter中FirebaseAuthWeakPasswordException的原因



在Flutter中本地化FirebaseAuthWeakPasswordException原因的最佳方法是什么?

在官方文档中提到了getReason((方法,但我找不到类似于需要从该方法中捕获和本地化的潜在原因的列表。密码弱的唯一记录原因是最小长度为6个字符(也许这是唯一的原因?!(。

我也找不到FirebaseAuthWeakPasswordException类的源代码和/或使用它的源代码,也没有找到在导入FirebaseAuthWeakPasswordException的导入语句中放入的正确文件,谷歌搜索也没有帮助。所以,基本上我不知道从哪里开始(除了发送随机的弱密码和检查响应,这不能保证我会涵盖所有潜在的原因(。

如何在Flutter中解决Firebase弱密码异常的本地化问题,有什么想法/最佳实践吗?我想,我不是唯一一个想向用户解释为什么他们的密码不例外的人。

文档中的类描述:

使用弱密码(少于6个字符(创建新帐户或更新现有帐户的密码时抛出。使用getReason((获取一条消息,其中包含验证失败的原因,您可以向用户显示该消息。

getReason()方法只返回一个反映异常本质的字符串。本质是在类描述中指定的。因此,每当您收到FirebaseAuthWeakPasswordException时,您可以确保它会发生,因为密码长度小于6个字符。

我不熟悉flutter,但这种情况下的逻辑应该像一样

if exception class is FirebaseAuthWeakPasswordException then
show error with locale key = LocaleKey_ShortPassError
endif

只需查看此模式。。。从开始

关于FirebaseAuthException捕获(e(

try {
if (_emailT.text.trim().isNotEmpty &&
_pasT.text.trim().isNotEmpty) {
progress!.show();
final _authenticatedUser =auth
.signInWithEmailAndPassword(
email: _emailT.text,
password: _pasT.text);
await _authenticatedUser.user!
.reload();
if (_authenticatedUser
.user!.emailVerified) {
await prefs.setBool(
'loggedIn', true);
progress.dismiss();
if (_remember) {
prefs.setBool('remember', true);
prefs.setString(
'shareEmail', _emailT.text);
prefs.setString(
'sharePass', _pasT.text);
}
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) =>
VerifyStudent(),
),
);
} else {
progress.dismiss();
openCustomDialog(
context: context,
body:
'your email have not been veriftied',
heading: 'Verification');
}
} else {
progress!.dismiss();
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(
backgroundColor: Colors.blue,
content: const Text(
'All filed must not be empty'),
duration:
const Duration(seconds: 2),
));
}
} on FirebaseAuthException catch (e) {
progress!.dismiss();
if (e.code == 'invalid-email') {
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(
backgroundColor: Colors.blue,
content:
const Text('invalid-email'),
duration:
const Duration(seconds: 2),
));
} else if (e.code ==
'user-disabled') {
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(
backgroundColor: Colors.blue,
content:
const Text('user-disabled'),
duration:
const Duration(seconds: 2),
));
} else if (e.code ==
'user-not-found') {
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(
backgroundColor: Colors.blue,
content:
const Text('user-not-found'),
duration:
const Duration(seconds: 2),
));
} else if (e.code ==
'wrong-password') {
ScaffoldMessenger.of(context)
.showSnackBar(SnackBar(
backgroundColor: Colors.blue,
content:
const Text('wrong-password'),
duration:
const Duration(seconds: 2),
));
}
} catch (e) {
progress!.dismiss();
print(e);
}

相关内容

  • 没有找到相关文章

最新更新