반응형
Flot Firebase Auth Exception의 오류 코드는 무엇입니까?
나는 이 스레드를 읽으려고 시도했고, 또한 검색하려고 시도했지만, 여기서 admin SDK 인증 오류를 찾을 수 있습니다.
해당 링크의 오류 코드는 Firebase Auth for Flutter 앱의 오류 코드와 다릅니다.
내 말은, 난 여기에 오류 코드가 필요해.
Future<void> signInUsingEmail({required String email, required String password}) async {
try {
await _auth.signInWithEmailAndPassword(email: email, password: password);
} on FirebaseAuthException catch (error) {
// I need the error.code in here
print(error.code);
}
사용 가능한 모든 오류 코드를 알 수 있을까요? 그래서 나는 나만의 오류 메시지를 나의 언어로 쓸 수 있다. 현재로서는 아래의 오류 코드만 잡을 수 있습니다.
- "너무 많은 것"
- "비밀번호 입력"
- "network-request-messages"
물론이지.
모든 오류 코드 및 메시지 목록을 찾을 수 있습니다.
TextButton(
onPressed: () async {
try {
//final user = FirebaseAuth.instance.currentUser;
final email = _emailController.text;
final password = _passwordController.text;
// await FirebaseAuth.instance // final userCredential =
// .signInWithEmailAndPassword(
// email: email, password: password);
AuthService.firebase()
.logIn(email: email, password: password);
final user = AuthService.firebase().currentUser;
if (user?.isEmailVerified ?? false) {
Navigator.of(context).pushNamedAndRemoveUntil(
emailRoute, (route) => false);
} else {
Navigator.of(context)
.pushNamedAndRemoveUntil(noteRoute, (route) => false);
}
//devtools.log(userCredential.toString());
//This line of text may not work to print data
// print(userCredential.toString());
} on FirebaseAuthException catch (e) {
if (e.code == 'network-request-failed') {
showErrorDialog(context, 'No Internet Connection');
//devtools.log('No Internet Connection');
} else if (e.code == "wrong-password") {
return showErrorDialog(
context, 'Please Enter correct password');
//devtools.log('Please Enter correct password');
//print('Please Enter correct password');
} else if (e.code == 'user-not-found') {
showErrorDialog(context, 'Email not found');
// print('Email not found');
} else if (e.code == 'too-many-requests') {
return showErrorDialog(
context, 'Too many attempts please try later');
//print('Too many attempts please try later');
} else if (e.code == 'unknwon') {
showErrorDialog(
context, 'Email and password field are required');
//print('Email and password field are required');
} else if (e.code == 'unknown') {
showErrorDialog(
context, 'Email and Password Fields are required');
//print(e.code);
} else {
print(e.code);
}
}
},
child: const Text('Login')),
그래서 제가 이걸 만들었는데 기본적으로 몇 가지 일반적인 화재 기반 인증 예외를 위한 핸들러입니다.
이것은 그것을 사용하는 방법에 대한 예시이다.
Future createUser(String email, String password) async {
try {
UserCredential customUserCredential = await FirebaseAuth.instance
.createUserWithEmailAndPassword(
email: email, password: password);
return customUserCredential.user!.uid;
} on FirebaseAuthException catch (authError) {
throw CustomAuthException(authError.code, authError.message!);
} catch (e) {
throw CustomException(errorMessage: "Unknown Error");
}
링크 클릭을 좋아하지 않는 사용자:
전자 메일 및 암호로 로그인
- : 암호가 지정된 전자 메일에 대해 잘못되었거나 전자 메일에 해당하는 계정에 암호가 설정되어 있지 않은 경우에 느려집니다.
- : 전자 메일 주소가 올바르지 않으면 느려집니다.
- : 지정된 전자 메일에 해당하는 사용자가 비활성화된 경우에 느려집니다.
- : 지정된 전자 메일에 해당하는 사용자가 없을 경우 느려집니다.
전자 메일 및 암호를 사용하여 사용자 만들기
- : 지정된 전자 메일 주소를 가진 계정이 이미 있는 경우에 느려집니다.
- : 전자 메일 주소가 올바르지 않으면 느려집니다.
- : 전자 메일/암호 계정이 활성화되지 않은 경우에 느려집니다. Firebase 콘솔의 Auth(인증) 탭에서 전자 메일/암호 계정을 활성화합니다.
- : 암호가 충분히 강력하지 않을 경우 던져집니다.
자격 증명으로 로그인
- : 자격 증명에 의해 단언된 전자 메일 주소를 가진 계정이 이미 있는 경우에 느려집니다. fetchSignInMethodsForEmail을 호출한 다음 반환된 공급자 중 하나를 사용하여 사용자에게 로그인하도록 요청하여 이 문제를 해결합니다. 사용자가 로그인하면 원래 자격 증명을 linkWithCredential로 사용자와 연결할 수 있습니다.
- : 자격 증명의 형식이 잘못되었거나 만료된 경우에 느려집니다.
- : 자격 증명에 해당하는 계정 유형이 활성화되지 않은 경우에 느려집니다. Firebase 콘솔의 Auth 탭에서 계정 유형을 사용하도록 설정합니다.
- : 지정된 자격 증명에 해당하는 사용자가 비활성화된 경우에 느려집니다.
- : 전자 메일의 자격 증명으로 로그인하면 느려집니다.AuthProvider.credential에 지정된 전자 메일에 해당하는 사용자가 없습니다.
- : 전자 메일의 자격 증명으로 로그인하면 느려집니다.지정된 전자 메일에 대해 AuthProvider.credential 및 암호가 잘못되었거나 전자 메일에 해당하는 계정에 암호가 설정되어 있지 않은 경우.
- : 자격 증명이 PhoneAuthProvider.credential이고 자격 증명의 확인 코드가 올바르지 않은 경우에 느려집니다.
- : 자격 증명이 PhoneAuthProvider.credential이고 자격 증명의 확인 ID가 valid.id이 아닌 경우에 느려집니다.
재인증하다자격 증명 포함
- : 지정된 자격 증명이 사용자와 일치하지 않을 경우 느려집니다.
- : 지정된 자격 증명이 기존 사용자와 일치하지 않을 경우 느려집니다.
- : 공급자의 자격 증명이 유효하지 않은 경우 던져집니다. 링크를 호출할 때 이미 만료되었거나 잘못된 토큰을 사용한 경우 이 문제가 발생할 수 있습니다. 공급자에 대한 Firebase 설명서를 참조하여 자격 증명 방법에 올바른 매개 변수를 전달했는지 확인하십시오.
- : 전자 메일이 전자 메일에 사용된 경우 느려짐AuthProvider.credential이 잘못되었습니다.
- : 전자 메일에 암호가 사용된 경우 느려짐AuthProvider.credential이 올바르지 않거나 전자 메일과 연결된 사용자에게 암호가 없는 경우.
- : 자격 증명이 PhoneAuthProvider.credential이고 자격 증명의 확인 코드가 올바르지 않은 경우에 느려집니다.
- : 자격 증명이 PhoneAuthProvider.credential이고 자격 증명의 확인 ID가 올바르지 않은 경우에 느려집니다.
AuthProvider로 로그인
- : 지정된 전자 메일에 해당하는 사용자가 비활성화된 경우에 느려집니다.
익명으로 서명하다
- : 익명 계정이 활성화되지 않은 경우 던져집니다. Firebase 콘솔의 Auth 탭에서 익명 계정을 활성화합니다.
이메일 링크로 로그인
- : 전자 메일 링크의 OTP가 만료되면 느려집니다.
- : 전자 메일 주소가 올바르지 않으면 느려집니다.
- : 지정된 전자 메일에 해당하는 사용자가 비활성화된 경우에 느려집니다.
Fluter 방법의 경우 패키지에서 오류 코드를 찾을 수 있습니다.
실제로는 JS SDK와 동일하다.
반응형
'개발하자' 카테고리의 다른 글
테라폼 플랫 튜플과 문자열 집합 (0) | 2022.12.12 |
---|---|
Uvicorn + Fast를 종료하는 방법pytest로 테스트 시 workers > = 2로 API를 깔끔하게 적용 (0) | 2022.12.12 |
사이드 메뉴바를 펄럭이는 방법은? (0) | 2022.12.10 |
Azure CNI 네트워크 정책을 사용하여 Kubernetes 포드에서 특정 FQDN/DNS로의 송신만 허용 (0) | 2022.12.10 |
react.js로 svelt store를 사용하는 방법 (0) | 2022.12.09 |