본문 바로가기

APP DEVELOPER/Android 안드로이드

JAVA/안드로이드 - 파이어베이스(FIREBASE) 시작하기

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

 

https://yeolco.tistory.com/85

 

 

안드로이드 - 파이어베이스 Firebase로 개발하기

 

안드로이드 백앤드쪽 개발시 필요함.

 

 

 

강의동영상

 

https://www.youtube.com/watch?v=u1CE6UtLbmQ&list=PLmdU__e_zPf_6x2x_7iNDrH2faXNdVM4K

 

기타동영상

 

https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%96%B4%EB%B2%A0%EC%9D%B4%EC%8A%A4-%EA%B0%95%EC%A2%8C-%EC%9B%B9-%EC%96%B4%ED%94%8C%EB%A6%AC%EC%BC%80%EC%9D%B4%EC%85%98#description

 

 

 

 
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/

 

 

 

 

로그인 - Google 계정

하나의 계정으로 모든 Google 서비스를 Google 계정으로 로그인

accounts.google.com