반응형
1. orderByChild와 equalTo
Repo.kt
fun getCommentData(cafeName : String) : LiveData<MutableList<ReviewData>> {
val mutableData = MutableLiveData<MutableList<ReviewData>>()
val database = Firebase.database("https://coffeezoo-30c55-default-rtdb.asia-southeast1.firebasedatabase.app/")
val myRef = database.getReference("ReviewData").orderByChild("cafeName").equalTo(cafeName)
myRef.addValueEventListener(object : ValueEventListener {
val listData : MutableList<ReviewData> = mutableListOf<ReviewData>()
override fun onDataChange(snapshot: DataSnapshot) {
if (snapshot.exists()){
listData.clear() //실시간 데이터 업데이트 시 리사이클러뷰 데이터 중복 방지
for ( userSnapshot in snapshot.children ){
val getData = userSnapshot.getValue(ReviewData::class.java)
listData.add(getData!!)
mutableData.value = listData
}
}
}
override fun onCancelled(error: DatabaseError) {
}
})
return mutableData
}
orderByChild는 key값, equalTo는 그 key값의 value 값이다.
해당 key값의 value가 같은 값을 모두 찾아 나열할 수 있다.
2. 뷰모델
fun fetchCommentData(cafeName : String) : LiveData<MutableList<ReviewData>> {
val mutableData = MutableLiveData<MutableList<ReviewData>>()
repo.getCommentData(cafeName).observeForever {
mutableData.value = it
}
return mutableData
}
반응형
'Android > Android Kotlin' 카테고리의 다른 글
[Android Kotlin] Compose (1-2 Ex1~2) Button, AlertDialog (0) | 2023.11.10 |
---|---|
[Android Kotlin] Compose (1-1 Ex1~2) Row, Column, Box (0) | 2023.11.10 |
[Android Kotlin] 네이버 로그인 (0) | 2023.10.25 |
[Android Kotlin] Firebase로 로그인 기능 구현 - 이메일 로그인 (0) | 2023.10.25 |
[Android Kotlin] LayoutManager 종류 (0) | 2023.10.25 |