Flutter에서 비밀번호 기반 계정으로 Firebase에 인증

Firebase 인증을 사용하여 사용자가 이메일 주소와 비밀번호로 Firebase에 인증하도록 할 수 있습니다.

시작하기 전에

  1. 아직 수행하지 않았다면 시작하기 가이드의 단계를 따르세요.

  2. 다음과 같이 이메일 및 비밀번호 로그인 방법을 사용 설정합니다.

    • Firebase Console의 인증 섹션에서 로그인 방법 페이지를 엽니다.
    • 로그인 방법 페이지에서 이메일/비밀번호 로그인 방법을 사용 설정하고 저장을 클릭합니다.

비밀번호 기반 계정 만들기

비밀번호가 있는 신규 사용자 계정을 만들려면 createUserWithEmailAndPassword() 메서드를 호출합니다.

try {
  final credential = await FirebaseAuth.instance.createUserWithEmailAndPassword(
    email: emailAddress,
    password: password,
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'weak-password') {
    print('The password provided is too weak.');
  } else if (e.code == 'email-already-in-use') {
    print('The account already exists for that email.');
  }
} catch (e) {
  print(e);
}

일반적으로 앱의 로그인 화면에서 이 작업을 수행합니다. 신규 사용자가 앱의 가입 양식을 사용해 가입하고 나면 필요에 따라 앱에서 계정 유효성 검사 절차를 완료합니다. 검사 항목의 예시로는 신규 계정의 비밀번호를 정확하게 입력했는지, 비밀번호가 복잡성 조건을 충족하는지 등이 있습니다.

신규 계정이 생성되면 사용자도 로그인됩니다. 인증 상태의 변경사항을 수신 대기하면 새 이벤트가 리스너로 전송됩니다.

새 계정 생성에 대한 후속 조치로 사용자의 이메일 주소를 확인할 수 있습니다.

이메일 주소와 비밀번호로 사용자 로그인

비밀번호로 사용자 로그인을 처리하는 절차는 신규 계정을 생성하는 절차와 비슷합니다. 앱의 로그인 화면에서 signInWithEmailAndPassword()를 호출합니다.

try {
  final credential = await FirebaseAuth.instance.signInWithEmailAndPassword(
    email: emailAddress,
    password: password
  );
} on FirebaseAuthException catch (e) {
  if (e.code == 'user-not-found') {
    print('No user found for that email.');
  } else if (e.code == 'wrong-password') {
    print('Wrong password provided for that user.');
  }
}

다음 단계

사용자가 새 계정을 만들면 이 계정이 Firebase 프로젝트의 일부로 저장되며, 사용자가 사용한 로그인 방법과 관계없이 프로젝트의 모든 앱에서 사용자 식별에 사용될 수 있습니다.

앱의 User 객체에서 사용자의 기본 프로필 정보를 가져올 수 있습니다. 사용자 관리를 참조하세요.

Firebase 실시간 데이터베이스와 Cloud Storage 보안 규칙의 auth 변수에서 로그인한 사용자의 고유 사용자 ID를 가져온 후 이 ID를 사용해 사용자가 액세스할 수 있는 데이터를 관리할 수 있습니다.

인증 제공업체의 사용자 인증 정보를 기존 사용자 계정에 연결하면 사용자가 여러 인증 제공업체를 통해 앱에 로그인할 수 있습니다.

사용자를 로그아웃시키려면 signOut()을 호출합니다.

await FirebaseAuth.instance.signOut();