본문 바로가기

개발하자

Flot Firebase Auth Exception의 오류 코드는 무엇입니까?

반응형

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와 동일하다.


반응형