앱 개발 공부방

안드로이드 스튜디오-파이어베이스 연동 이메일을 통한 로그인 본문

Android-java

안드로이드 스튜디오-파이어베이스 연동 이메일을 통한 로그인

춘행이 2020. 5. 20. 15:40
728x90

https://cpcp127.tistory.com/22

 

안드로이드 스튜디오-파이어베이스 연동

저번에는 php와 mysql을 사용한 회원가입, 카카오톡 로그인을 구현해봤는데요 이번에는 파이어 베이스를 통하여 이메일 로그인과 페이스북 로그인을 만들어보겠습니다. 먼저 파이어베이스에 자��

cpcp127.tistory.com

파이어베이스 연동을 안하신분은 위 글을 보고 연동을 해주시기 바랍니다.

 

다음으로 위에서 만든 자신의 프로젝트에 들어가서  이메일/비밀번호 칸을 아래처럼 활성화 시켜줍니다.

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
Comments