반응형
안드로이드에서 Firebase Firestore 역시 사용법을 알면 쉽지만,
멀티 게임 등을 만들기 위해 처음 접하게 되면 굉장히 난해 합니다.
그래서 기본 사용법 만을 이해할수 있도록
실시간 읽고 쓰기 초간단 예제 및 설명입니다.
파이어 베이스 콘솔
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
반응형
'프로그램 & 기타 > 안드로이드 스튜디오' 카테고리의 다른 글
| 안드로이드 스튜디오 코틀린,Firebase 파이어 베이스 구글 로그인 연동하기 (0) | 2025.11.02 |
|---|---|
| 안드로이드 스튜디오 파이어 베이스 SHA 지문 등록하기 (0) | 2025.11.02 |
| 안드로이드 스튜디오 Firebase Firestore 코틀린으로 초간단 읽고 쓰기 예제 (0) | 2025.11.01 |
| 안드로이드 스튜디오 + 파이어 베이스 firebase 설정,연결하기 (0) | 2025.11.01 |
| 안드로이드 스튜디오 flutter, running 에뮬레이터 창이 안 보일때 (0) | 2025.10.31 |