Firebase Realtime Database는 클라우드 호스팅 데이터베이스입니다. 데이터는 JSON으로 저장되며 연결된 모든 클라이언트에 실시간으로 동기화됩니다. Android, iOS, JavaScript SDK로 크로스 플랫폼 앱을 개발하면 모든 클라이언트가 하나의 Realtime Database 인스턴스를 공유하고 자동 업데이트로 최신 데이터를 수신합니다.
Firebase Realtime Database는 iOS, macOS, macOS Catalyst, tvOS, watchOS를 포함한 모든 Apple 플랫폼에서 사용할 수 있습니다. 앱 클립에는 사용할 수 없습니다. 이 페이지에 나와 있는 설정 안내는 iOS를 구체적인 예시로 설명하지만 일반적인 내용으로 모든 Apple 플랫폼 대상에서 사용할 수 있습니다.
기본 요건
- Firebase SDK를 설치합니다.
- Firebase Console에서 Firebase 프로젝트에 앱을 추가합니다.
데이터베이스 만들기
Firebase Console의 Realtime Database 섹션으로 이동합니다. 기존 Firebase 프로젝트를 선택하라는 메시지가 표시됩니다. 데이터베이스 만들기 워크플로를 따릅니다.
Firebase Security Rules의 시작 모드를 선택합니다.
- 테스트 모드
모바일과 웹 클라이언트 라이브러리를 시작할 때 유용하지만 모든 사람이 데이터를 읽고 덮어쓸 수 있습니다. 테스트 완료 후 Firebase 실시간 데이터베이스 규칙 이해 섹션을 검토해야 합니다.
웹, Apple 또는 Android SDK를 시작하려면 테스트 모드를 선택하세요.
- 잠금 모드
모바일과 웹 클라이언트의 모든 읽기와 쓰기를 거부합니다. 인증된 애플리케이션 서버에서는 사용자의 데이터베이스에 계속 액세스할 수 있습니다.
데이터베이스의 위치를 선택합니다.
데이터베이스 위치에 따라 새 데이터베이스의 URL이 다음 형식 중 하나로 지정됩니다.
(DATABASE_NAME.firebaseio.com
us-central1
의 데이터베이스) (다른 모든 위치의 데이터베이스)DATABASE_NAME.REGION.firebasedatabase.app
완료를 클릭합니다.
Realtime Database를 사용 설정하면 Cloud API Manager의 API도 사용 설정됩니다.
앱에 Firebase Realtime Database 추가
Swift Package Manager를 사용해 Firebase 종속 항목을 설치하고 관리하세요.
- 앱 프로젝트를 연 상태로 Xcode에서 File(파일) > Add Packages(패키지 추가)로 이동합니다.
- 메시지가 표시되면 Firebase Apple 플랫폼 SDK 저장소를 추가합니다.
- Realtime Database 라이브러리를 선택합니다.
- 타겟 빌드 설정의 Other Linker Flags(기타 링커 플래그) 섹션에
-ObjC
플래그를 추가합니다. - 완료되면 Xcode가 백그라운드에서 자동으로 종속 항목을 확인하고 다운로드하기 시작합니다.
https://github.com/firebase/firebase-ios-sdk.git
Realtime Database Security Rules 구성
Realtime Database가 제공하는 선언적 규칙 언어로 데이터의 구조, 색인 생성 방법, 데이터를 읽고 쓸 수 있는 조건을 정의할 수 있습니다.
Firebase Realtime Database 설정
Firebase 앱 참조를 만들거나 사용하려면 우선 Firebase를 초기화해야 합니다. 다른 Firebase 기능을 위해 이 단계를 이미 수행했다면 건너뛰어도 무방합니다.
UIApplicationDelegate
의FirebaseCore
모듈과 앱 대리자가 사용하는 다른 Firebase 모듈을 가져옵니다. 예를 들어 Cloud Firestore와 Authentication을 사용하려면 다음을 따르세요.SwiftUI
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Swift
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Objective-C
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- 앱 대리자의
application(_:didFinishLaunchingWithOptions:)
메서드에서FirebaseApp
공유 인스턴스를 구성합니다.SwiftUI
// Use Firebase library to configure APIs FirebaseApp.configure()
Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- SwiftUI를 사용하는 경우 앱 대리자를 만들고
UIApplicationDelegateAdaptor
또는NSApplicationDelegateAdaptor
를 통해App
구조체에 연결해야 합니다. 앱 대리자 재구성도 중지해야 합니다. 자세한 내용은 SwiftUI 안내를 참조하세요.SwiftUI
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- 데이터베이스에 대한 참조를 만들고, 쓰고 싶은 위치를 지정합니다.
Swift
참고: 이 Firebase 제품은 앱 클립 대상에서는 사용할 수 없습니다.var ref: DatabaseReference! ref = Database.database().reference()
Objective-C
참고: 이 Firebase 제품은 앱 클립 대상에서는 사용할 수 없습니다.@property (strong, nonatomic) FIRDatabaseReference *ref; self.ref = [[FIRDatabase database] reference];
다음 단계
Realtime Database의 데이터를 구조화하는 방법 알아보기
앱 출시 준비
내 앱만 데이터베이스에 액세스할 수 있도록 App Check 사용 설정
Google Cloud 콘솔에서 프로젝트의 예산 알림을 설정합니다.
Firebase Console에서 사용량 및 결제 대시보드를 모니터링하여 프로젝트의 여러 Firebase 서비스 사용량을 전체적으로 파악합니다. 사용량 정보에 대한 자세한 내용은 Realtime Database 사용량 대시보드에서도 확인할 수 있습니다.
Firebase 출시 체크리스트를 검토합니다.