[swift] Firebase Realtime Database를 활용한 실시간 체크리스트 앱 구현하기
Firebase는 실시간 데이터베이스 서비스를 제공하여 실시간으로 데이터를 동기화하고 공유할 수 있는 기능을 제공합니다. 이번에는 Firebase Realtime Database를 활용하여 실시간 체크리스트 앱을 구현해보겠습니다.
준비물
- Firebase 프로젝트 생성
- Xcode
- Swift
프로젝트 설정
- Firebase 콘솔에서 새 프로젝트를 만듭니다.
- Xcode에서 프로젝트를 생성합니다.
- Firebase SDK를 프로젝트에 추가합니다. (CocoaPods를 사용할 경우 Podfile에
pod 'Firebase/Database'
를 추가하고pod install
명령어를 실행합니다.) - Firebase 프로젝트와 연결하기 위해 GoogleService-Info.plist 파일을 프로젝트에 추가합니다.
데이터베이스 구조 설계
Firebase Realtime Database는 JSON의 형태로 데이터를 저장하며, 데이터를 트리 구조로 관리합니다. 이번 예제에서는 다음과 같은 트리 구조로 데이터를 저장할 것입니다.
- checklists
- checklistKey1
- title: "미팅 준비"
- items
- item1: "회의록 작성"
- item2: "발표 자료 준비"
- checklistKey2
- title: "쇼핑 리스트"
- items
- item1: "우유"
- item2: "빵"
데이터 읽기
Firebase에서 데이터를 읽기 위해서는 데이터의 경로를 참조해야 합니다. 이경우는 checklists
경로를 참조하여 데이터를 가져올 것입니다.
import Firebase
let ref = Database.database().reference().child("checklists")
ref.observe(.value, with: { snapshot in
// 데이터 처리 로직 작성
})
데이터 쓰기
Firebase Realtime Database에 데이터를 쓰기 위해서는 데이터의 경로를 참조하고, setValue()
메소드를 사용합니다.
let ref = Database.database().reference().child("checklists")
let checklist = [
"title": "새로운 체크리스트",
"items": [
"item1": "내용1",
"item2": "내용2"
]
]
ref.childByAutoId().setValue(checklist)
데이터 갱신
Firebase에서는 데이터가 변경될 때마다 observe()
를 사용하여 실시간으로 데이터를 감지할 수 있습니다. 이를 활용하여 데이터 갱신 기능을 구현할 수 있습니다.
let ref = Database.database().reference().child("checklists").child(checklistKey)
ref.observe(.value, with: { snapshot in
guard let checklistData = snapshot.value as? [String: Any] else {
return
}
// 변경된 데이터 처리 로직 작성
})
데이터 삭제
Firebase Realtime Database에서 데이터를 삭제하기 위해서는 removeValue()
메소드를 사용합니다.
let ref = Database.database().reference().child("checklists").child(checklistKey)
ref.removeValue()
결론
이렇게 Firebase Realtime Database를 활용하여 실시간 체크리스트 앱을 구현할 수 있습니다. Firebase의 강력한 실시간 동기화 기능을 사용하여 다양한 실시간 애플리케이션을 개발해보세요.
더 자세한 내용은 Firebase 공식 문서를 참고하세요.