Swift기반으로 Firebase Database 사용하기

2017-02-03
28 Views

이 내용은 Firebase 입문하는 내용으로 간단하게 데이터 추가 및 검색, 업데이트, 삭제까지만 진행한다.

1. Xcode에서 프로젝트 만들기

Single View Application을 선택하고 FirebaseExam프로젝트를 만든다. Bundle Identifier명을 따로 복사해둔다.

2. Firebase에서 프로젝트를 만든다

구글 계정으로 로그인 한 상태에서 https://firebase.google.com에 접속하고 [무료로 시작하기]를 선택한다.

콘솔 화면으로 이동하면 [새 프로젝트 만들기]를 선택한다.

프로젝트 만들기 팝업이 나오면, 프로젝트 이름을 입력하고 국가/지역을 대한민국을 선택한다. 마지막으로 [프로젝트 만들기]버튼을 클릭한다.

3. iOS 앱에 Firebase 추가하기

[iOS 앱에 Firebase 추가]를 선택한다.

Xcode에서 만든 앱의 Bundle Identifier를 iOS 번들 ID항목에 입력하고 앱 닉네임은 입력해도 되고 안해도 된다. 마지막 App Store ID는 선택사항이지만 https://itunesconnect.apple.com 사이트에서 앱등록시 나오는 Apple ID를 입력한다. 모두 입력하였다면 [앱 추가]버튼을 클릭한다.

구성 파일 복사 단계 다음 포드 설치를 본 후 Xcode프로젝트에서 Podfile을 만들고 관련 프레임웍을 추가해놓자.

Firebase 연결을 위한 기본 AppDelegate클래스에 해당 초기화 코드를 추가하도록 하자.

다음으로 자동으로 생성되는 GoogleService-Info.plist를 다운로드 받고 Xcode프로젝트에 드래그하여 추가한다. 추가되면 일단 프로젝트를 닫자.

터미널 창을 열고 cd 명령어로 프로젝트 폴더로 이동한다. 다음으로 pod init명령어를 실행해서 Podfile을 만들고 sudo vi Podfile을 연다.

위와 같이 코드를 추가하고 pod install을 실행하여 Firebase 프레임웍들을 설치한다.

Firebase 버전이 2017년 2월 2일 현재 3.11.0인지 체크한 다음 이전버전을 사용한다면 pod update 명령을 통해 업데이트하기 바란다. 프로젝트 폴더에 가보면 FirebaseExam.xcworkspace 파일이 있는데 이제 이것을 사용하여 프로젝트를 열도록 한다.

4. 초기 설정하기

프로젝트를 열고 한번 빌드(Command + B)를 한다음 AppDelegate.swift에서 import Firebase 를 선언하고 초기화 코드 FIRApp.onfigure()를 추가한다.

5. 데이터베이스 규칙 변경하기

Firebase 콘솔의 Database를 선택하고 [규칙]을 선택한 다음 아래와 같이 변경한 다음, [게시]버튼을 클릭한다.

위와 같이 설정하면 모든 계층에서 누구나 읽고 쓰기를 할 수 있게 된다. 실제 공개하는 앱에서는 사용하지 않지만, 테스트를 위해 공개형태로 설정한다.

데이터 추가(setValue)

user/01/name: “명준”을 데이터를 추가해 보자.

위와 같이 스토리보드에서 텍스트입력박스와 버튼을 추가하고 아래와 같이 코드를 추가한다.

데이터 검색(DataSnapshot)

setValue와 DataSnapshot을 사용하여 추가한 데이터를 검색하는 기능을 추가해 보자. 추가하는 데이터는 나이를 받는 age: 39를 추가한다.

기존 ViewController에서 스토리보드에 입력받은 숫자값을 출력하는 Label을 추가하고 위와 같이 코드를 추가한다. 단, 앞에서 추가한 name: “명준”이라는 데이터가 삭제되어 버린다. 이것은 setValue가 지정한 계층 이라애 모든 데이터를 덮어쓰기 때문이다. 만약 현재 저장되어 있는 데이터를 그대로 두고 새 데이터를 추가하고 싶거나 일부 데이터를 변경하고 싶다면 updateChildValues를 사용한다.

데이터 업데이트(updateChildValues)

앞에서 삭제된 데이터를 다시 추가하고 싶다면 Value만 업데이트가 가능하다.

데이터 삭제 (removeValue)

앞에서 추가한 name: “명준”을 삭제한다.

이제 Firebase 입문을 해보았다.

 

 

Facebook Comments

You may be interested

페이지 로딩 위치에 따른 사용자 시선 유도
Swift 3.0
shares3 views
Swift 3.0
shares3 views

페이지 로딩 위치에 따른 사용자 시선 유도

MJ Kim - 4월 29, 2017

로딩되는 표시를 표시할 위치를 조금 고민해보면서 사용자경험(UX)를 개선하기 위함을 고려해서 정리해 본다. 로딩을 생각해보면 대부분 한가운데에 표시하면 된다고 생각하지만, Twitter…

iOS와 Android UX의 차이점
Swift 3.0
shares2 views
Swift 3.0
shares2 views

iOS와 Android UX의 차이점

MJ Kim - 4월 29, 2017

최근 필자가 iOS와 Android를 같이 개발하다보니 UX의 차이점을 기억하고자 정리해본다.  이를 정리하는 이유는 운영체제별로 차이점을 이해하고 그 차이점을 극복하기 위함이다.…

모바일 앱 아키텍처
Swift
shares26 views
Swift
shares26 views

모바일 앱 아키텍처

MJ Kim - 4월 22, 2017

이 내용은 나름대로 개발해본 내용을 토대로 정리해본 모바일 앱 아키텍처에 대한 내용이다. 이를 정리한 이유는 오래된 아키텍처부터 최근 아키텍처까지 정리해보고…