Android-java
안드로이드 스튜디오-파이어베이스 연동 이메일을 통한 로그인
춘행이
2020. 5. 20. 15:40
728x90
https://cpcp127.tistory.com/22
파이어베이스 연동을 안하신분은 위 글을 보고 연동을 해주시기 바랍니다.
다음으로 위에서 만든 자신의 프로젝트에 들어가서 이메일/비밀번호 칸을 아래처럼 활성화 시켜줍니다.
Tools->firebase로 들어가서 authentication을 클릭해서 email and password authentication을 클릭합니다
1번 2번을 눌러서 자동으로 로그인에 필요한것들을 자동으로 설정해준다.
그 다음 안드로이드 스튜디오로 돌아와서 로그인화면 xml을 만들어줍니다.
MainActivity.java
(SuccessActivity.java는 로그인 성공시 넘어가는 엑티비티라서 자신이 원하는대로 만들어 줍시다)
package com.example.database;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
public class MainActivity extends AppCompatActivity {
private Button join;
private Button login;
private EditText email_login;
private EditText pwd_login;
FirebaseAuth firebaseAuth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
join = (Button) findViewById(R.id.main_join_btn);
login = (Button) findViewById(R.id.main_login_btn);
email_login = (EditText) findViewById(R.id.main_email);
pwd_login = (EditText) findViewById(R.id.main_pwd);
firebaseAuth = firebaseAuth.getInstance();//firebaseAuth의 인스턴스를 가져옴
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = email_login.getText().toString().trim();
String pwd = pwd_login.getText().toString().trim();
//String형 변수 email.pwd(edittext에서 받오는 값)으로 로그인하는것
firebaseAuth.signInWithEmailAndPassword(email, pwd)
.addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {//성공했을때
Intent intent = new Intent(MainActivity.this, SuccessActivity.class);
startActivity(intent);
} else {//실패했을때
Toast.makeText(MainActivity.this, "로그인 오류", Toast.LENGTH_SHORT).show();
}
}
});
}
});
join.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Main2Activity.class);
startActivity(intent);
}
});
}
}
회원가입 xml을 만들어 줍니다
회원가입 java
package com.example.database;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.HashMap;
import java.util.Map;
public class Main2Activity extends AppCompatActivity {
private EditText email_join;
private EditText pwd_join;
private EditText age_join,name_join;
private Button btn;
FirebaseAuth firebaseAuth;
private FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
private DatabaseReference databaseReference = firebaseDatabase.getReference();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
email_join = (EditText) findViewById(R.id.sign_up_email);
pwd_join = (EditText) findViewById(R.id.sign_up_pwd);
age_join=(EditText)findViewById(R.id.sign_up_age);
name_join=(EditText)findViewById(R.id.sign_up_name);
btn = (Button) findViewById(R.id.sign_up_btn);
firebaseAuth = FirebaseAuth.getInstance();
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String email = email_join.getText().toString().trim();
final String pwd = pwd_join.getText().toString().trim();
final String age = age_join.getText().toString().trim();
final String name = name_join.getText().toString().trim();
//공백인 부분을 제거하고 보여주는 trim();
firebaseAuth.createUserWithEmailAndPassword(email, pwd)
.addOnCompleteListener(Main2Activity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Intent intent = new Intent(Main2Activity.this, MainActivity.class);
startActivity(intent);
finish();
} else {
Toast.makeText(Main2Activity.this, "등록 에러", Toast.LENGTH_SHORT).show();
return;
}
}
});
}
});
}
}
로그인 성공시 이렇게 식별자에 회원가입한 아이디가 나옵니다.
728x90