https://sh-itstory.tistory.com/58
* minSdkVersion : 16 이상부터 가능
* 연동과정 중 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase 오류가 뜬다면
Module:app 변경
implementation 'com.google.firebase:firebase-firestore:+'
implementation 'com.google.firebase:firebase-core:+'
implementation 'com.google.firebase:firebase-messaging:+'
*FCM
https://nicgoon.tistory.com/195
안드로이드 - 파이어베이스 Firebase로 개발하기
안드로이드 백앤드쪽 개발시 필요함.
강의동영상
https://www.youtube.com/watch?v=u1CE6UtLbmQ&list=PLmdU__e_zPf_6x2x_7iNDrH2faXNdVM4K
기타동영상
package com.nocean.testfirebase;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputType;
import android.util.Patterns;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
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 editTextEmaili;
private EditText editTextPassword;
private String email="";
private String password="";
//FCM 페이지로 넘어가기 위한 버튼
private Button next;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
firebaseAuth = FirebaseAuth.getInstance();
editTextEmaili = findViewById(R.id.et_eamil);
editTextPassword = findViewById(R.id.et_password);
next = findViewById(R.id.next);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getApplicationContext(), NextActivity.class);
startActivity(intent);
}
});
//젤리빈에서만 키보드 오류가 생겨 사용
editTextEmaili.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
editTextPassword.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
}
public void signUp(View view){
email = editTextEmaili.getText().toString();
password = editTextPassword.getText().toString();
if(isValidEmail() && isValidPasswd()){
createUser(email, password);
}
}
public void signIn(View view){
email = editTextEmaili.getText().toString();
password = editTextPassword.getText().toString();
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://console.firebase.google.com/
'APP DEVELOPER > Android 안드로이드' 카테고리의 다른 글
안드로이드 - 부분 슬라이드 좌우 스와이프 My Pager (0) | 2019.10.01 |
---|---|
안드로이드 - 구글음성인식 활용, 클래스 하나로 쉽게 구현하기 (0) | 2019.09.11 |
Android/안드로이드 - 어플백업방법 (0) | 2019.09.09 |
Android/안드로이드 - 휴대폰 전화번호 추출 (0) | 2019.09.09 |
[안드로이드] HTTP로 이미지파일 BITMAP 받아오기 (0) | 2019.09.08 |