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가 같은 값을 모두 찾아 나열할 수 있다.
fun fetchCommentData(cafeName : String) : LiveData<MutableList<ReviewData>> {
val mutableData = MutableLiveData<MutableList<ReviewData>>()
repo.getCommentData(cafeName).observeForever {
mutableData.value = it
}
return mutableData
}