Firebase에서 Firebase RealtimeDB처럼 store에서 실시간 데이터 값 받아오기

2024. 5. 9. 02:16카테고리 없음

Firebase에서는 Realtime Database에서 DatabaseReference라는 클래스를 사용하여 데이터를 참조하고.

 

스마트팜 프로젝트에서 def를통해 희망값과 현재값을 받아오는코드

 

그 def로 참조한 값을 onDataChange 메소드를 오버라이드해서 쓰면 값이 변했을때 실시간으로 데이터를 변경해준다.

 

근데 이번에 희망온도는 실시간 데이터베이스가 아닌 DB에서 저장하는게 낫지않겠냐는 조원의 의견이 있어서 

Hope 희망값을 DB로 이전하는 작업을 진행했다.

 

이 과정에서 같은 FireStore라서 똑같지 않을까 생각했지만. 애초에 다른 DB라서 동작 방식이 다르다.

 

결론부터 말하자면 addSnapShotListener을 사용하면 된다. 이 리스너를 사용하면 문서나 컬렉션의 변화를 실시간으로 감지하고 콜백함수를 제공하기 때문에. 이를 이용하여 데이터를 실시간으로 받아와볼 수 있다. 

 

 

예제코드인데 이런식으로 구현을하면 텍스트뷰에 StoreDB의 희망 온습도값을 실시간으로 받아오고 출력해줄 수 있다.

 

가령 웹과 앱을동시에 서비스할때 웹에서 데이터를 변경하면 앱에서 실시간으로 동기화 되듯이말이다.

 

이런식으로 get자료형("필드값")을 사용하여 값을 바로 참조할수도있고. Map 구조에 getData();를 사용하여 자료형으로 받아서 사용해볼수도있는데. 개인취향에 맞게 사용할수 있다