Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

C++ 프로젝트에 Firebase 추가

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

iOS 및 Android용 Firebase 위에 C++ 인터페이스를 제공하는 Firebase C++ SDK로 C++ 게임을 강화하세요.

플랫폼 네이티브 코드를 작성할 필요 없이 C++ 코드에서 완전히 Firebase에 액세스하세요. 또한 Firebase SDK는 Firebase에서 사용하는 많은 언어별 관용구를 C++ 개발자에게 더 친숙한 인터페이스로 변환합니다.

Firebase 게임 페이지 에서 Firebase로 게임을 강화하는 방법에 대해 자세히 알아보세요.

C++ 프로젝트에 이미 Firebase를 추가하셨습니까? 최신 버전의 Firebase C++ SDK 를 사용하고 있는지 확인하세요.

전제 조건

  • 다음을 설치합니다.

    • Xcode 13.3.1 이상
    • 코코아팟 1.10.0 이상
  • 프로젝트가 다음 플랫폼 버전 이상을 대상으로 하는지 확인하십시오.

    • 아이폰 OS 11
  • 실제 iOS 기기를 설정하거나 iOS 시뮬레이터를 사용하여 앱을 실행합니다.

  • Google 계정을 사용하여 Firebase에 로그인 합니다.

2단계 : Firebase 프로젝트 생성

C++ 프로젝트에 Firebase를 추가하려면 C++ 프로젝트에 연결할 Firebase 프로젝트를 만들어야 합니다. Firebase 프로젝트에 대해 자세히 알아보려면 Firebase 프로젝트 이해 를 방문하세요.

3단계 : Firebase에 앱 등록

Apple 앱에서 Firebase를 사용하려면 Firebase 프로젝트에 앱을 등록해야 합니다. 앱을 등록하는 것을 종종 프로젝트에 앱을 "추가"라고 합니다.

  1. Firebase 콘솔 로 이동합니다.

  2. 프로젝트 개요 페이지 중앙에서 iOS+ 아이콘을 클릭하여 설정 워크플로를 시작합니다.

    Firebase 프로젝트에 앱을 이미 추가한 경우 앱 추가 를 클릭하여 플랫폼 옵션을 표시합니다.

  3. 번들 ID 필드에 앱의 번들 ID를 입력합니다.

  4. (선택사항) 기타 앱 정보 입력: 앱 닉네임App Store ID .

  5. 앱 등록 을 클릭합니다.

4단계 : Firebase 구성 파일 추가

  1. GoogleService-Info.plist 다운로드 를 클릭하여 Firebase Apple 플랫폼 구성 파일을 가져옵니다.

  2. IDE에서 C++ 프로젝트를 연 다음 구성 파일을 C++ 프로젝트의 루트로 드래그합니다.

  3. 메시지가 표시되면 구성 파일을 모든 대상에 추가하도록 선택합니다.

Firebase 콘솔에서 작업 설정이 완료되었습니다. 아래에서 계속해서 Firebase C++ SDK를 추가 하세요.

5단계 : Firebase C++ SDK 추가

이 섹션의 단계는 지원되는 Firebase 제품 을 Firebase C++ 프로젝트에 추가하는 방법의 예입니다.

  1. Firebase C++ SDK 를 다운로드한 다음 편리한 위치에 SDK의 압축을 풉니다.

    Firebase C++ SDK는 플랫폼별로 다르지만 플랫폼별 라이브러리가 포함되어 있습니다.

  2. 압축을 푼 SDK에서 Firebase 포드 를 추가합니다.

    1. 아직 없는 경우 Podfile을 만듭니다.

      cd your-app-directory
      pod init

    2. Podfile에 앱에서 사용하려는 Firebase 포드를 추가합니다.

      애널리틱스 사용

      # Add the Firebase pod for Google Analytics
      pod 'FirebaseAnalytics'
      # Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'

      애널리틱스가 사용 설정되지 않음

      # Add the pods for the Firebase products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      pod 'FirebaseAuth'
      pod 'FirebaseDatabase'
    3. 포드를 설치한 다음 Xcode에서 .xcworkspace 파일을 엽니다.

      pod install
      open your-app.xcworkspace

  3. 압축을 푼 SDK에서 Firebase 프레임워크 를 추가합니다.

    이러한 프레임워크를 추가하는 가장 쉬운 방법은 일반적으로 Finder 창에서 Xcode의 프로젝트 네비게이터 창(기본적으로 맨 왼쪽 창 또는 Xcode의 왼쪽 상단에 있는 파일 아이콘 클릭)으로 프레임워크를 직접 드래그하는 것입니다.

    1. Firebase 제품을 사용하는 데 필요한 firebase.framework C++ 프레임워크 firebase.framework 를 추가합니다.

    2. 사용하려는 각 Firebase 제품의 프레임워크를 추가합니다. 예를 들어 firebase_auth.framework 인증을 사용하려면 firebase_auth.framework 를 추가합니다.

  4. Firebase 콘솔로 돌아가서 설정 워크플로에서 다음 을 클릭합니다.

  5. 애널리틱스를 추가한 경우 앱을 실행하여 Firebase를 성공적으로 통합했다는 확인을 Firebase에 보냅니다. 그렇지 않으면 이 확인 단계를 건너뛸 수 있습니다.

    기기 로그에 초기화가 완료되었다는 Firebase 확인이 표시됩니다. 네트워크 액세스 권한이 있는 에뮬레이터에서 앱을 실행한 경우 Firebase 콘솔 에서 앱 연결이 완료되었음을 알립니다.

설정이 완료되었습니다. C++ 앱이 Firebase 제품을 사용하도록 등록 및 구성되었습니다.

사용 가능한 라이브러리

참조 문서GitHub 의 오픈 소스 SDK 릴리스에서 C++ Firebase 라이브러리에 대해 자세히 알아보세요.

iOS용으로 사용 가능한 라이브러리

Android용 C++ 라이브러리 는 이 설정 페이지의 Android 버전에 나열되어 있습니다.

각 Firebase 제품에는 서로 다른 종속성이 있습니다. 원하는 Firebase 제품에 대해 나열된 모든 종속 항목을 Podfile 및 C++ 프로젝트에 추가해야 합니다.

Firebase 제품 프레임워크 및 포드
애드몹 (필수) firebase.framework
firebase_admob.framework
(필수) firebase_analytics.framework

pod 'FirebaseAdMob', '10.2.0'
(필수) pod 'FirebaseAnalytics', '10.2.0'
해석학 (필수) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.2.0'
입증 (필수) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.2.0'
클라우드 파이어스토어 (필수) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.2.0'
pod 'FirebaseAuth', '10.2.0'
클라우드 함수 (필수) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.2.0'
클라우드 메시징 (필수) firebase.framework
firebase_messaging.framework
(권장) firebase_analytics.framework

pod 'FirebaseMessaging', '10.2.0'
(권장) pod 'FirebaseAnalytics', '10.2.0'
클라우드 스토리지 (필수) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.2.0'
동적 링크 (필수) firebase.framework
firebase_dynamic_links.framework
(권장) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.2.0'
(권장) pod 'FirebaseAnalytics', '10.2.0'
실시간 데이터베이스 (필수) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.2.0'
원격 구성 (필수) firebase.framework
firebase_remote_config.framework
(권장) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.2.0'
(권장) pod 'FirebaseAnalytics', '10.2.0'

모바일 설정에 대한 추가 정보

메서드 스위즐링

iOS에서 일부 애플리케이션 이벤트(예: URL 열기 및 알림 수신)는 특정 메서드를 구현하기 위해 애플리케이션 대리자가 필요합니다. 예를 들어 알림을 받으려면 애플리케이션 대리자가 application:didReceiveRemoteNotification: 을 구현해야 할 수 있습니다. 각 iOS 애플리케이션에는 자체 앱 대리자가 있기 때문에 Firebase는 한 메서드를 다른 메서드로 교체할 수 있는 메서드 스위즐링 을 사용하여 구현한 핸들러 외에 자체 핸들러를 추가합니다.

동적 링크 및 클라우드 메시징 라이브러리는 메서드 재구성을 사용하여 애플리케이션 대리자에 핸들러를 연결해야 합니다. 이러한 Firebase 제품을 사용하는 경우 로드 시 Firebase는 AppDelegate 클래스를 식별하고 여기에 필요한 메서드를 혼합하여 콜백을 기존 메서드 구현에 연결합니다.

데스크톱 워크플로 설정( 베타 )

게임을 만들 때 먼저 데스크톱 플랫폼에서 게임을 테스트한 다음 나중에 개발 단계에서 모바일 장치에 배포하고 테스트하는 것이 훨씬 쉬운 경우가 많습니다. 이 워크플로를 지원하기 위해 Windows, macOS, Linux 및 C++ 편집기 내에서 실행할 수 있는 Firebase C++ SDK의 하위 집합을 제공합니다.

  1. 데스크톱 워크플로의 경우 다음을 완료해야 합니다.

    1. CMake용 C++ 프로젝트를 구성합니다.
    2. Firebase 프로젝트 만들기
    3. Firebase에 앱(iOS 또는 Android) 등록
    4. 모바일 플랫폼 Firebase 구성 파일 추가
  2. Firebase 구성 파일의 데스크톱 버전을 만듭니다.

    • Android google-services.json 파일을 추가한 경우 — 앱을 실행할 때 Firebase는 이 모바일 파일을 찾은 다음 자동으로 데스크톱 Firebase 구성 파일( google-services-desktop.json )을 생성합니다.

    • iOS GoogleService-Info.plist 파일을 추가한 경우 — 앱을 실행하기 전에 이 모바일 파일을 데스크톱 Firebase 구성 파일로 변환해야 합니다. 파일을 변환하려면 GoogleService-Info.plist 파일과 동일한 디렉터리에서 다음 명령을 실행합니다.

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

    이 데스크톱 구성 파일에는 Firebase 콘솔 설정 워크플로에 입력한 C++ 프로젝트 ID가 포함되어 있습니다. 구성 파일에 대해 자세히 알아보려면 Firebase 프로젝트 이해 를 방문하세요.

  3. C++ 프로젝트에 Firebase SDK를 추가합니다.

    아래 단계는 지원되는 Firebase 제품 을 C++ 프로젝트에 추가하는 방법의 예입니다. 이 예에서는 Firebase 인증 및 Firebase 실시간 데이터베이스를 추가하는 과정을 안내합니다.

    1. FIREBASE_CPP_SDK_DIR 환경 변수를 압축 해제된 Firebase C++ SDK의 위치로 설정합니다.

    2. 프로젝트의 CMakeLists.txt 파일에 사용하려는 Firebase 제품의 라이브러리 를 포함하여 다음 콘텐츠를 추가합니다. 예를 들어 Firebase 인증 및 Firebase 실시간 데이터베이스를 사용하려면 다음을 수행합니다.

      # Add Firebase libraries to the target using the function from the SDK.
      add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
      
      # The Firebase C++ library `firebase_app` is required,
      # and it must always be listed last.
      
      # Add the Firebase SDKs for the products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      set(firebase_libs firebase_auth firebase_database firebase_app)
      target_link_libraries(${target_name} "${firebase_libs}")
      
  4. C++ 앱을 실행합니다.

사용 가능한 라이브러리(데스크탑)

Firebase C++ SDK에는 일부 기능에 대한 데스크톱 워크플로 지원 이 포함되어 있어 Windows, macOS, Linux의 독립형 데스크톱 빌드에서 Firebase의 특정 부분을 사용할 수 있습니다.

Firebase 제품 라이브러리 참조(CMake 사용)
입증 firebase_auth
(필수) firebase_app
클라우드 파이어스토어 firebase_firestore
firebase_auth
firebase_app
클라우드 기능 firebase_functions
(필수) firebase_app
클라우드 스토리지 firebase_storage
(필수) firebase_app
실시간 데이터베이스 firebase_database
(필수) firebase_app
원격 구성 firebase_remote_config
(필수) firebase_app

Firebase는 Windows, macOS 및 Linux용으로 빌드할 때 편의를 위해 나머지 데스크톱 라이브러리를 스텁(비기능) 구현으로 제공합니다. 따라서 데스크톱을 대상으로 하는 코드를 조건부로 컴파일할 필요가 없습니다.

실시간 데이터베이스 데스크탑

데스크톱용 실시간 데이터베이스 SDK는 REST를 사용하여 데이터베이스에 액세스하므로 데스크톱에서 Query::OrderByChild() 와 함께 사용 하는 인덱스를 선언 해야 합니다. 그렇지 않으면 리스너가 실패합니다.

데스크톱 설정에 대한 추가 정보

Windows 라이브러리

Windows의 경우 다음을 기준으로 라이브러리 버전이 제공됩니다.

  • 빌드 플랫폼: 32비트(x86) 대 64비트(x64) 모드
  • Windows 런타임 환경: 다중 스레드/MT 대 다중 스레드 DLL/MD
  • 대상: 릴리스와 디버그

다음 라이브러리는 Visual Studio 2015 및 2017을 사용하여 테스트되었습니다.

Windows에서 C++ 데스크톱 앱을 빌드할 때 다음 Windows SDK 라이브러리를 프로젝트에 연결합니다. 자세한 내용은 컴파일러 설명서를 참조하십시오.

Firebase C++ 라이브러리 Windows SDK 라이브러리 종속성
입증 advapi32, ws2_32, crypt32
클라우드 파이어스토어 advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
클라우드 기능 advapi32, ws2_32, crypt32, rpcrt4, ole32
클라우드 스토리지 advapi32, ws2_32, crypt32
실시간 데이터베이스 advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
원격 구성 advapi32, ws2_32, crypt32, rpcrt4, ole32

macOS 라이브러리

macOS(Darwin)의 경우 64비트(x86_64) 플랫폼용 라이브러리 버전이 제공됩니다. 편의를 위해 프레임워크도 제공됩니다.

macOS 라이브러리는 Xcode 13.3.1을 사용하여 테스트되었습니다.

macOS에서 C++ 데스크톱 앱을 빌드할 때 프로젝트에 다음을 연결합니다.

  • pthread 시스템 라이브러리
  • CoreFoundation macOS 시스템 프레임워크
  • Foundation macOS 시스템 프레임워크
  • Security macOS 시스템 프레임워크
  • GSS macOS 시스템 프레임워크
  • Kerberos macOS 시스템 프레임워크
  • SystemConfiguration macOS 시스템 프레임워크

자세한 내용은 컴파일러 설명서를 참조하십시오.

리눅스 라이브러리

Linux의 경우 32비트(i386) 및 64비트(x86_64) 플랫폼용 라이브러리 버전이 제공됩니다.

Linux 라이브러리는 Ubuntu에서 GCC 4.8.0, GCC 7.2.0 및 Clang 5.0을 사용하여 테스트되었습니다.

Linux에서 C++ 데스크톱 앱을 빌드할 때 pthread 시스템 라이브러리를 프로젝트에 연결합니다. 자세한 내용은 컴파일러 설명서를 참조하십시오. GCC 5 이상으로 빌드하는 경우 -D_GLIBCXX_USE_CXX11_ABI=0 을 정의합니다.

다음 단계