안드로이드 스튜디오 Firebase Firestore 코틀린으로 초간단 실시간 읽고 쓰기 예제
안드로이드에서 Firebase Firestore 역시 사용법을 알면 쉽지만,
멀티 게임 등을 만들기 위해 처음 접하게 되면 굉장히 난해 합니다.
그래서 기본 사용법 만을 이해할수 있도록
실시간 읽고 쓰기 초간단 예제 및 설명입니다.
*참고 용
Firebase 설정 법을 모르면 아래를 참고하세요
안드로이드 스튜디오 + 파이어 베이스 firebase 설정, 연결하기
https://dxkor2.tistory.com/318
안드로이드 스튜디오 Firebase Firestore 코틀린으로 초간단 읽고 쓰기 예제
https://dxkor2.tistory.com/319
파이어 베이스 콘솔
https://console.firebase.google.com/
Firebase , Clould Firestore에서 위처럼
player - test@gmail.com - xloc (number) 순서로 만들어 줍니다.
목표는 xloc에 값을 실시간으로 쓰고 그것을 읽는 게 목표입니다.
TextView를 하나 만듭니다.
activity_main.xml 소스에서 추가해서
숫자가 잘 보이게 text를 좀 크게 해줍니다.
android:textSize="32sp"
|
실시간 파이어 베이스 읽고 쓰기 코틀린 예제
import android.os.Bundle
import android.widget.TextView
import androidx.appcompat.app.AppCompatActivity
import com.google.firebase.firestore.DocumentSnapshot
import com.google.firebase.firestore.EventListener
import com.google.firebase.firestore.ktx.firestore
import com.google.firebase.ktx.Firebase
import kotlin.concurrent.timer
class MainActivity : AppCompatActivity() {
val fbdb = Firebase.firestore //파이어베이스.파이어스토어 설정
var oSysMainLoop = 0 //타임어 쓰레드 0=시작 조차 않음. 1=실행중, 2= 실행 후 종료했음
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val textv1=findViewById<TextView>(R.id.textView)
//-----------------------------------------------------------------------
//xloc 값이 변경되면 xloc 값을 읽어서 읽어서 textview에 그리는 부분
//-----------------------------------------------------------------------
val adocRef = fbdb.collection("player").document("test@gmail.com")
adocRef.addSnapshotListener(EventListener<DocumentSnapshot> { snapshot, e ->
if (snapshot != null && snapshot.exists()) {
textv1.text = snapshot.data!!["xloc"].toString()
}
})
//-----------------------------------------------------------------------
//타임어로 xloc 값을 일정 주기로 계속 바꾸어 쓰는 부분
//-----------------------------------------------------------------------
if (oSysMainLoop == 0) { //타임어 쓰레드를 실행한 적이 없다면
oSysMainLoop = 1 //타임어 쓰레드 실행
timer(period = 1500, initialDelay = 1000) //1.5초(1500) 주기마다 호출,처음 시작시 딜러이 1초
{
if (oSysMainLoop != 1) {
cancel()
}
val axloc = hashMapOf("xloc" to (0..100).random()) //0..100 랜덤 발생시켜 쓰기
fbdb.collection("player").document("test@gmail.com").set(axloc)
.addOnSuccessListener { //쓰기 성공했을 경우
}
.addOnFailureListener() { //쓰기 실패 했을 경우
}
}
}
} //create
} //MainActivity
|
fbdb.collection("player").document("test@gmail.com").update("xloc",(0..100).random())
|
궁굼한게 있다면 공식 문서를 참고 하세요
https://firebase.google.cn/docs/firestore/query-data/get-data?hl=ko#kotlin+ktx_5
나중에 소스를 테스트 했을때 연결이나 모든 설정은 제대로 됐는데
읽고 쓰기가 않 되서 고생 했습니다.
파이어 베이스 프로젝트가 바꼈을 경우
전의 프로젝트 이름을 찾아서 다시
새 프로젝트 이름으로 바꾸어 주니까 잘 됐습니다.
values.xml 에 프로젝트 이름이 설정되어 있습니다.
경로)
MyApplication\app\build\generated\res\google-services\dev\debug\values\values.xml
'프로그램잉_기타 > 안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 스튜디오 코틀린 주석 색 바꾸기 (0) | 2021.11.18 |
---|---|
안드로이드 스튜디오 코틀린 R.drawable (Unresolved reference) 에러 (0) | 2021.11.15 |
안드로이드 스튜디오 Firebase Firestore 코틀린으로 초간단 읽고 쓰기 예제 (0) | 2021.11.11 |
안드로이드 스튜디오 + 파이어 베이스 firebase 설정,연결하기 (0) | 2021.11.09 |
2021/11/sdk31 기본 실행 에러시 빌드그리드 설정 Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.(기록용) (0) | 2021.11.08 |