-
[Firebase, iOS] Database 정리iOS/메신저(Firebase) 2021. 6. 9. 13:53
import FirebaseDatabase // 사용할 데이터베이스 private let database = Database.database().reference()앞으로 데이터를 올릴 데이터베이스. Realtime Database를 사용했다.
// 데이터베이스에 데이터 만들기 database.child("key").setValue(value: Any?, withCompletionBlock: (Error?, DatabaseReference) -> Void)데이터베이스에 데이터를 올릴때는 setValue를 사용했다.
가입하는 유저의 이메일, 이름, 최근메세지 등을 Dictionary로 만들어서 value: 에 넣어 올린다.
withCompletionBlock에 데이터를 올리는데 성공한 이후에 실행될 동작을 넣는다.
// 데이터베이스에서 '한번' 값 가져오기 database.child("key").observeSingleEvent(of: .value, with: { snapshot in ~~~return })데이터베이스에 있는 key값이 가지고 있는 값을 한번 가져온다.
유저가 존재하는지 체크하거나, 메세지를 보낼때 지금까지 업로드된 메시지들을 가져오는등
데이터가 업데이트 될때마다 값을 가져오지 않는 경우에 사용한다.
// Realtime Database를 사용. // Realtime Database에 데이터가 변할때마다 값을 가져오는 observe database.child("key").observe(.value, with: { snapshot in ~~ return})데이터베이스에 데이터가 업데이트 될 때마다 실행된다.
UI에 메세지들을 표시하는 경우, 메세지 목록들을 표시하는 곳에서 메세지가 올때마다 알려줘야 하는 경우 등
실시간으로 반응해야하는 부분에서 사용한다.
데이터베이스에 관한 코드를 다시보니 사용한 함수는 이 4개밖에 없다.
코드가 되게 길었지만 대부분 데이터를 가공하는 코드였고 정작 사용하는 함수는 4개밖에 없었다.
Firebase에서 데이터베이스에 값을 올리고 가져올 수 있는 부분이 제공되고
나머지는 어떤 데이터를 올리고 올리고 난 후에 어떤 동작을해야하는지는 스스로 만들어야한다.
만들때는 뭔가 많이 쓴거같은데 4개밖에 없었다니...
'iOS > 메신저(Firebase)' 카테고리의 다른 글
Firebase를 이용한 메신저 (0) 2021.06.09 [Firebase, iOS] Auth - 로그인 정리 (0) 2021.06.09 [Firebase, iOS] Auth - 회원가입 정리 (0) 2021.06.09 [Firebase, iOS] Storage 정리 (0) 2021.06.09