반응형
데이터베이스 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에 제대로 값이 써지는 것을 확인 할수 있습니다.
'안드로이드 프로그래밍[Kotiln Code] > Google firebase' 카테고리의 다른 글
구글 파이어베이스 : GsonConvert class 객체를 이용한 데이터 추가, 검색 기능 (0) | 2020.02.10 |
---|