레이아웃 코드는 제외한다.


dependencies {
// ...
// Firebase library dependencies
implementation("com.google.firebase:firebase-auth")
}
사용자 인증을 사용하기 클래스를 선언하고, 객체를 만들어주자!
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mAuth = FirebaseAuth.getInstance();
}
이메일과 비밀번호를 입력 받았다는 경우에 따라서 사용자 회원가입을 시도하자!
// 이메일과 비밀번호 받아서 회원가입 시도
// email : 입력받은 이메일
// password : 입력받은 비밀번호
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(RegisterActivity.this
, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
progressBar.setVisibility(View.GONE);
if(task.isSuccessful()){
// 회원가입 성공시, 유저의 정보를 검색, 활용하기 위해 실시간 데이터 베이스 저장
// 채팅방을 만들때 사용할 예정
FirebaseUser user = mAuth.getCurrentUser();
String uid = user.getUid().toString();
FirebaseDatabase.getInstance()
.getReference("User").child("users") // 경로는 User/users에 저장한다.
.child(uid).setValue(new User(uid, name, email));
Intent intent = new Intent(RegisterActivity.this, LoginActivity.class);
startActivity(intent);
finish();
}else{
Log.i("확인", task.getException().getMessage());
}
}
});
실시간 데이터베이스에 저장하는 부분은 이 후 채팅방을 위해 활용할 예정이니, 회원가입만 할 생각이라면 저장하는 부분은 생략해도 된다!
완성된 모습!!
- 회원가입을 진행하는 화면
- 사용자가 추가된 화면
회원가입과 동일하게 사용자 인증을 사용하기 클래스를 선언하고, 객체를 만들어주자!
private FirebaseAuth mAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
mAuth = FirebaseAuth.getInstance();
}
이메일과 비밀번호를 입력 받았다는 경우에 따라서 사용자 로그인을 시도하자!
// 이메일, 비밀번호를 받아서 로그인을 시도
// email : 입력받은 이메일
// password : 입력받은 비밀번호
mAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
progressBar.setVisibility(View.GONE);
if(task.isSuccessful()){
// 로그인 정상적으로 성공시, ChatActivity(채팅방 리스트)로 이동
Intent intent = new Intent(LoginActivity.this, ChatActivity.class);
startActivity(intent);
finish();
}else{
Toast.makeText(
LoginActivity.this,
"이메일, 비밀번호가 다릅니다.",
Toast.LENGTH_SHORT
);
}
}
});
로그인을 진행하는 화면
FirebaseAuth.getInstance().signOut();