Firebase 실시간 데이터베이스는 NoSQL 클라우드 데이터베이스를 사용하여 데이터를 저장하고 동기화합니다. 모든 클라이언트에서 실시간으로 데이터가 동기화되고 앱이 오프라인일 때도 데이터를 사용할 수 있습니다.
시작하기 전에
Firebase 실시간 데이터베이스를 사용하려면 우선 다음을 수행해야 합니다.
C++ 프로젝트를 등록하고 Firebase를 사용하도록 구성합니다.
C++ 프로젝트에서 현재 Firebase를 사용하고 있다면 이미 등록되어 Firebase용으로 구성된 상태입니다.
C++ 프로젝트에 Firebase C++ SDK를 추가합니다.
C++ 프로젝트에 Firebase를 추가할 때 Firebase Console 및 열려 있는 C++ 프로젝트 모두에서 작업을 수행해야 합니다. 예를 들어 Console에서 Firebase 구성 파일을 다운로드한 후 이 파일을 C++ 프로젝트로 옮기는 작업이 필요합니다.
데이터베이스 만들기
Firebase Console의 실시간 데이터베이스 섹션으로 이동합니다. 기존 Firebase 프로젝트를 선택하라는 메시지가 표시됩니다. 데이터베이스 만들기 워크플로를 따릅니다.
Firebase 보안 규칙의 시작 모드를 선택합니다.
- 테스트 모드
모바일과 웹 클라이언트 라이브러리를 시작할 때 유용하지만 모든 사용자가 데이터를 읽고 덮어쓸 수 있습니다. 테스트 완료 후 Firebase 실시간 데이터베이스 규칙 이해 섹션을 검토해야 합니다.
웹, Apple 또는 Android SDK를 시작하려면 테스트 모드를 선택하세요.
- 잠금 모드
모바일과 웹 클라이언트의 모든 읽기와 쓰기를 거부합니다. 인증된 애플리케이션 서버에서는 사용자의 데이터베이스에 계속 액세스할 수 있습니다.
데이터베이스의 위치를 선택합니다.
데이터베이스 위치에 따라 새 데이터베이스의 URL이 다음 형식 중 하나로 지정됩니다.
(DATABASE_NAME.firebaseio.com
us-central1
의 데이터베이스) (다른 모든 위치의 데이터베이스)DATABASE_NAME.REGION.firebasedatabase.app
완료를 클릭합니다.
실시간 데이터베이스를 사용 설정하면 Cloud API Manager의 API도 사용 설정됩니다.
firebase::App 만들기 및 초기화
실시간 데이터베이스에 액세스하려면 우선 firebase::App
을 만들고 초기화해야 합니다.
firebase::App
의 헤더 파일을 포함합니다.
#include "firebase/app.h"
Android
자바 액티비티에 JNI 환경과 jobject
참조를 인수로 전달하여 firebase::App
을 만듭니다.
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"), jni_env, activity);
iOS+
firebase::App
을 만듭니다.
app = ::firebase::App::Create(::firebase::AppOptions("APPLICATION NAME"));
firebase::database::Database 클래스 액세스
firebase::database::Database
는 Firebase 실시간 데이터베이스 C++ SDK의 진입점입니다.
::firebase::database::Database *database = ::firebase::database::Database::GetInstance(app);
규칙에서 공개 액세스를 사용하기로 결정했다면 데이터 저장 및 검색에 대한 섹션으로 이동하세요.
제한된 액세스 설정
공개 액세스를 사용하지 않으려면 앱에 Firebase 인증을 추가하여 데이터베이스에 대한 액세스를 관리하세요.
다음 단계
실시간 데이터베이스의 데이터를 구조화하는 방법 알아보기
앱 출시를 준비합니다.
- Google Cloud Console에서 프로젝트의 예산 알림을 설정합니다.
- Firebase Console에서 사용량 및 결제 대시보드를 모니터링하여 여러 Firebase 서비스에서 프로젝트 사용량을 전체적으로 파악합니다. 더 자세한 사용량 정보는 실시간 데이터베이스 사용량 대시보드에서 확인할 수 있습니다.
- Firebase 출시 체크리스트를 검토합니다.
알려진 문제
- 데스크톱 플랫폼(Windows, Mac, Linux)에서 Firebase C++ SDK는 REST를 사용하여 데이터베이스에 액세스합니다. 따라서 데스크톱에서 Query::OrderByChild()를 실행해 사용할 색인을 선언해야 하며, 그렇지 않으면 리스너가 작동하지 않습니다.
- 실시간 데이터베이스의 데스크톱 워크플로 버전은 오프라인 또는 지속성을 지원하지 않습니다.