안드로이드 프로그래밍[Kotiln Code]/Google firebase

Google firebase 구글 파이어베이스 app 연동

훈츠 2020. 2. 5. 16:57
반응형

데이터베이스 DB를 언젠가 공부해서 구현 해야겠다는 마음만 먹고 있는 상황에서 우연치 않게 알게된 구글 파이어베이스 DB에 대해 어떻게 APP과 연동하는지 포스팅 해보겠습니다. 

구글 파이어베이스 접속 및 앱 추가 

안드로이드 앱과 연동 할것이기 때문에 클릭!

패키지 이름과 앱 닉네임(선택사항) 을 기입후 앱 등록을 누릅니다. 

구성 파일 다운로드후, 다운 받은 .json 파일을 앱 모듈 루트 디렉토리로 이동 합니다. 

Dependecies 에 구글 서비스 및 firebase 빌드 그래들에 추가

//프로젝트 수준의 build.gradle (<project>/build.gradle):
buildscript {
  repositories {
    // Check that you have the following line (if not, add it):
    google()  // Google's Maven repository
  }
  dependencies {
    ...
    // Add this line
    classpath 'com.google.gms:google-services:4.3.3'
  }
}

allprojects {
  ...
  repositories {
    // Check that you have the following line (if not, add it):
    google()  // Google's Maven repository
    ...
  }
}

 

//앱 수준의 build.gradle (<project>/<app-module>/build.gradle):

apply plugin: 'com.google.gms.google-services'
android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"
    defaultConfig {
        applicationId "com.example.sms_autotransappfrag"
        minSdkVersion 16
        targetSdkVersion 29
        multiDexEnabled true
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_1_8
            targetCompatibility JavaVersion.VERSION_1_8
        }
        // For Kotlin projects
        kotlinOptions {
            jvmTarget = "1.8"
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
  ~//
  implementation 'com.google.gms:google-services:4.3.3'
  implementation 'com.google.firebase:firebase-analytics:17.2.2'
  implementation 'com.google.firebase:firebase-core:17.2.2'
  implementation 'com.google.firebase:firebase-database:18.0.0'
//SDK 하위 버젼 사용시 추가 
implementation 'com.android.support:multidex:1.0.3'

}

그래들 싱크 완료 후, APP에서 간단한 프로그램을 만듭니다. 

class SendSmSFragment : Fragment() {
    val TAG = "SendSmSFragment"
    private lateinit var database: FirebaseDatabase
    private lateinit var myRef: DatabaseReference
    
   override fun onActivityCreated(savedInstanceState: Bundle?) {
        super.onActivityCreated(savedInstanceState)
		
		database = FirebaseDatabase.getInstance()
        myRef = database.getReference()
        
        //한줄 코드도 가능 
        //myRef = FirebaseDatabase.getInstance().getReference()
        
        
        //값을 입력 할때 child뒤는 "key값 입력"
        myRef.child(dcontacts.lastIndex.toString()).setValue(jsonCon)
        myRef.child("data").push().setValue("hello , this is first time")
        
        //값을 읽어 올때는 다음과 같이 구현
        myRef.addValueEventListener(object : ValueEventListener{
            override fun onDataChange(db: DataSnapshot) {
                //값 변경된거 있으면 호출
                val value = db?.value
                edSMS.setText(value.toString()) //전체 읽어올때
                
                //지정 값 읽어올때 for문 이용
                for (snapshot in db.children){
                    if(snapshot.key.equals("data")){
                        edSMS.setText(snapshot.value.toString())
                    }
                }
             
            }
            override fun onCancelled(db: DatabaseError) {
                //캔슬
                println("failed to read value")
            }
        })

        
		

다음을 누르고, 앱과 firebase 통신을 확인 합니다. 

추가한 프로젝트에서 해당하는 앱을 추가 합니다. 

파이어 스토어 데이터 베이스 만들기 : 테스트 모드(구글에서 권장)

데이터 베이스 위치 설정

Realtime Database 선택 

보안 규칙 설정 : 테스트 모드로 시작 

현재 데이터 베이스 값 

APP에서 다음 값 입력후 DATABASE에 제대로 값이 써지는 것을 확인 할수 있습니다. 

APP에서 서버에 값이 변경되어서 바로 업데이트 되는것을 확인 할수 있습니다. 

 

반응형