일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MFC TCP/IP
- MFC 소켓 프로그래밍
- Python
- c++ 쓰레드
- c++ ofstream
- OpenCV 흰색 픽셀
- MFC 채팅
- 안드로이드 스튜디오 알람
- c++ ifstream
- Android 알람 앱
- 안드로이드 데이터베이스
- Kotlin
- MFC 채팅 프로그램
- OpenCV IMAGE
- OpenCV 이미지 처리
- 파이썬
- OpenCV 픽셀
- OpenCV 이미지
- 안드로이드 Firebase
- MFC
- 안드로이드 스튜디오
- 코틀린
- C++ 채팅
- OpenCV 검은색 픽셀
- 안드로이드 firebase 회원가입
- MFC 채팅 예제
- 안드로이드 파이어베이스 facebook
- 안드로이드
- c#
- OpenCV pixel
- Today
- Total
개발자 승학
안드로이드 Firebase 회원가입(이메일) 연동방법 본문
안녕하세요~
이번에는 안드로이드 스튜디오와 Firebase를 연동하여 이메일 로그인 연동 예제를 알려드릴게요.
우선,
firebase에 들어가신다음 새 프로젝트를 만듭니다.
firebase에 들어가신다음 새 프로젝트를 만듭니다.
생성된 프로젝트를 클릭하시면 아래와 같은 화면이 뜹니다.
안드로이드 예제이기에 Android 앱에 Firebase 추가를 클릭합니다.
그럼 아래와 같이 나옵니다.
패키지 이름과 디버그 서명 인증서 SHA-1두 가지를 입력할게요.
중간에 앱 닉네임은 선택사항입니다.
패키지 이름은 안드로이드 스튜디오 프로젝트를 새로 생성합니다.
그런다음 app -> manifests에 들어가면
3번 라인에
package = "com.example~~.프로젝트명" 뭐 이런식입니다.
"" 안에 있는 패키지를 복사하여 firebase 패키지에 붙여넣습니다.
그 다음 디버그 서명 인증서는 나중에 구글 로그인할 때 필요한 것인데 이메일 로그인한 하실 분들은 생략하셔도 됩니다.
디버그 서명 인증은
위 사진처럼 signingReport를 더블클릭하면 안드로이드 스튜디오 하단에 창이 뜹니다.
거기에서 SHA1 : ~~~~~~~~~~~~~ 이부분입니다.
앱추가를 합니다.
google-services.json을 다운받고 위 사진 경로에다가 넣어줍니다.
안드로이드 스튜디오에 sdk를 추가합니다.
다음으로 아래 사진처럼 이메일 설정을 해줍니다.
이제 안드로이드 스튜디오로 옵니다.
안드로이드 스튜디오 상단에 Tools > Firebase > 우측- Authentication
Email and password authentication을 클릭합니다.
위 사진처럼 파이어베이스에 앱을 연결하고 파이어베이스 인증에 앱을 추가합니다.
[res -> values -> string.xml]
<resources>
<string name="app_name">FirebaseEmail</string>
<string name="email">이메일</string>
<string name="password">비밀번호</string>
<string name="signin">로그인</string>
<string name="success_login">로그인 성공</string>
<string name="failed_login">로그인 실패</string>
<string name="signup">회원가입</string>
<string name="success_signup">회원가입 성공</string>
<string name="failed_signup">회원가입 실패</string>
</resources>
[activity_main.xml]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/email"
android:layout_marginTop="200dp"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp" />
<EditText
android:id="@+id/et_eamil"
android:layout_below="@id/tv_email"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"/>
<TextView
android:id="@+id/tv_password"
android:layout_below="@id/et_eamil"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/password"
android:layout_centerInParent="true"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"/>
<EditText
android:id="@+id/et_password"
android:layout_below="@id/tv_password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="50dp"
android:layout_marginRight="50dp"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/et_password">
<Button
android:id="@+id/btn_signUp"
android:text="@string/signup"
android:onClick="singUp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="50dp"/>
<Button
android:id="@+id/btn_signIn"
android:text="@string/signin"
android:onClick="signIn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginRight="50dp"/>
</LinearLayout>
</RelativeLayout>
[MainActivity.java]
package com.example.ysh.firebaseemail;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.util.Patterns;
import android.view.View;
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 java.util.regex.Pattern;
public class MainActivity extends AppCompatActivity {
// 비밀번호 정규식
private static final Pattern PASSWORD_PATTERN = Pattern.compile("^[a-zA-Z0-9!@.#$%^&*?_~]{4,16}$");
// 파이어베이스 인증 객체 생성
private FirebaseAuth firebaseAuth;
// 이메일과 비밀번호
private EditText editTextEmail;
private EditText editTextPassword;
private String email = "";
private String password = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 파이어베이스 인증 객체 선언
firebaseAuth = FirebaseAuth.getInstance();
editTextEmail = findViewById(R.id.et_eamil);
editTextPassword = findViewById(R.id.et_password);
}
public void singUp(View view) {
email = editTextEmail.getText().toString();
password = editTextPassword.getText().toString();
if(isValidEmail() && isValidPasswd()) {
createUser(email, password);
}
}
public void signIn(View view) {
email = editTextEmail.getText().toString();
password = editTextPassword.getText().toString();
if(isValidEmail() && isValidPasswd()) {
loginUser(email, password);
}
}
// 이메일 유효성 검사
private boolean isValidEmail() {
if (email.isEmpty()) {
// 이메일 공백
return false;
} else if (!Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
// 이메일 형식 불일치
return false;
} else {
return true;
}
}
// 비밀번호 유효성 검사
private boolean isValidPasswd() {
if (password.isEmpty()) {
// 비밀번호 공백
return false;
} else if (!PASSWORD_PATTERN.matcher(password).matches()) {
// 비밀번호 형식 불일치
return false;
} else {
return true;
}
}
// 회원가입
private void createUser(String email, String password) {
firebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// 회원가입 성공
Toast.makeText(MainActivity.this, R.string.success_signup, Toast.LENGTH_SHORT).show();
} else {
// 회원가입 실패
Toast.makeText(MainActivity.this, R.string.failed_signup, Toast.LENGTH_SHORT).show();
}
}
});
}
// 로그인
private void loginUser(String email, String password)
{
firebaseAuth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// 로그인 성공
Toast.makeText(MainActivity.this, R.string.success_login, Toast.LENGTH_SHORT).show();
} else {
// 로그인 실패
Toast.makeText(MainActivity.this, R.string.failed_login, Toast.LENGTH_SHORT).show();
}
}
});
}
}
이제 firebase에 들어가서 확인해보시면 회원정보가 있습니다.
궁금하신점은 댓글달아주세요.
[깃허브]
https://github.com/aiex1234/AndroidFirebaseLoginExample
'it > 안드로이드(android studio)' 카테고리의 다른 글
안드로이드 Firebase 구글 로그인 예제 (15) | 2018.08.13 |
---|---|
안드로이드 preview 안보임 해결 (0) | 2018.08.11 |
안드로이드 스튜디오 메모장 만들기(Realm 사용) (5) | 2018.05.29 |
안드로이드 스튜디오 계산기 어플(앱) 예제 (2) | 2018.05.22 |
안드로이드 ConstraintLayout 오류 - This view is not constrained.. 오류해결! (3) | 2018.05.18 |