Realtime Database 사용법

Lee HyeongJong·2022년 8월 2일
0

안드로이드

목록 보기
11/43

1. 데이터베이스에 쓰기

val database = Firebase.database //테스트 모드는 괄호를 빼준다.
val database = Firebase.database("https://....firebasedatabase.app")
val myRef = database.getReference("message")
myRef.setValue(binding.etInput.text.toString())  // 데이터 1개가 계속 수정되는 방식
myRef.push().setValue(binding.etInput.text.toString())  // 데이터가 계속 쌓이는 방식

2. 데이터베이스에서 읽기

실시간으로 앱 데이터를 읽기 위해 myRef 에 ValueEventListener 를 추가한다.
이 클래스의 onDataChange() 메서드는 데이터가 변경될 때마다 호출된다.
이 클래스의 onCancelled() 메서드는 데이터 읽기에 실패 시 호출된다.

myRef.addValueEventListener(object : ValueEventListener {
   override fun onDataChange(dataSnapshot: DataSnapshot) {  
      val value = dataSnapshot.getValue<String>() // 클레스는 getValue(TestData::class.java) 이렇게 넣어준다.
      Log.d(TAG, "Value is: $value")
   }
   override fun onCancelled(error: DatabaseError) {  
      Log.w(TAG, "Failed to read value.", error.toException())  
   }
})

3. 옵저버사용

fragment 에서는 this대신 viewLifecycleOwner를 사용해야 한다.

    fun observerData(){
        viewModel.fetchData().observe(viewLifecycleOwner, Observer {
            mAdapter.setListData(it)
            mAdapter.notifyDataSetChanged()

        })

    }

[참고] https://eunoia3jy.tistory.com/174

profile
코딩을 시작해보자

0개의 댓글