ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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
Designed by Tistory.