Firebase(4)
-
Jetpack Compose - Swipe To Dismiss, Swipe to reveal with Realtime database
https://github.com/SeongHyunJeon/android-kotlin-practice/tree/2fa81544cef5a55eedf1681c56138c8714db320a/Firebase SwipeToDismissBox - 소개팅 앱 처럼 간단한 좌우 스와이프에 대한 동작만 구현한다면 괜찮은 컴포저블이지만, 스와이프 상태에 따라 출력되는 UI가 명확하게 나뉘어져 있어 스와이프 전과 후의 UI를 동시에 출력할 수 없다는 제한이 따른다. SwipeToDismissBox 파라미터 설명.state : 스와이프 동작의 상태를 추적.backgroundContent : 스와이프 할 때 보여지는 컨텐츠.enableDismissFromStartToEnd : Start(left)에서 End(right) 방향..
2024.05.14 -
Android - Firebase Realtime Database Work with Lists
push - 참조 노드에 새로운 자식 노드를 생성하고, 생성된 자식 노드의 참조를 반환한다. 이때 생성된 노드의 키는 타임 스탬프를 기반으로 고유한 값이 배정되어 여러 사용자로부터 호출되어도 충돌이 발생하지 않는다. ChildrenEventListener의 4가지 콜백1. onChildAdded - 참조 노드를 포함한 자식 노드의 데이터를 처음 읽을 때 호출되거나, 새로운 자식 노드가 추가될 때마다 호출되는데, 리스너에 전달되는 DataSnapshot에는 생성된 자식 노드의 데이터가 포함된다.2. onChildChanged - 참조 노드를 포함한 자식 노드의 데이터가 변경될 때마다 호출되고, 리스너에 전달되는 DataSnapshot에는 변경된 노드의 데이터가 포함된다.3. onChildRemoved - ..
2024.05.08 -
Android - Firebase Realtime Database Read and Write
FirebaseDatabase.getInstance() 메서드를 사용하여 데이터 베이스 객체를 생성하고, 생성된 데이터 베이스 객체의 reference 프로퍼티를 사용하여 루트 노드를 참조한다.private val database: FirebaseDatabase = FirebaseDatabase.getInstance()private val reference: DatabaseReference = database.reference child() 메서드를 사용하여 자식 노드를 참조할 수 있는데, 데이터 베이스에 해당 노드가 존재하지 않아도 참조가 생성된다. 단, 생성된 참조를 사용하여 값을 삽입하지 않으면 데이터 베이스에는 반영되지 않는다. 다시 말해, 데이터 베이스에 "user"라는 자식 노드가 존재하지 않..
2024.05.07 -
Android - Firebase Realtime Database Structure
Realtime Database는 키-값 쌍으로 이뤄지는 JSON 객체들이 모여 트리 구조를 이루고, 루트 노드로부터 최대 32단계의 자식 노드를 가질 수 있다. 하지만 특정 노드의 데이터를 가져오면 해당 노드와 연결된 자식 노드의 데이터도 함께 가져오고, 사용자에게 특정 노드에 대한 권한을 부여하면 해당 노드에 속한 모든 데이터에 대한 권한이 부여된다는 특징 때문에 최대한 낮은 레벨의 트리 구조를 형성하는 것이 좋다. 쉽게 말해, 트리 가장 밑단에 존재하는 노드의 데이터를 얻는다고 할 때 해당 노드만 다운로드하면 그만이지만 루트 노드의 데이터를 얻는다고 하면 루트 노드와 연결된 모든 자식 노드들도 함께 다운로드가 되어 트래픽 사용량을 높인다는 의미다. title 목록을 얻기 위해 chats 노드를 가져..
2024.05.07