Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Firebase'i C++ projenize ekleyin

iOS ve Android için Firebase'in üzerinde bir C++ arabirimi sağlayan Firebase C++ SDK'larımızla C++ oyunlarınızı güçlendirin.

Platforma özgü herhangi bir kod yazmak zorunda kalmadan Firebase'e tamamen C++ kodunuzdan erişin. Firebase SDK ayrıca Firebase tarafından kullanılan dile özgü birçok deyimi C++ geliştiricilerinin daha aşina olduğu bir arayüze çevirir.

Bizim de Firebase ile oyunlarınızı açılıyor ilgili daha fazla bilgi edinin Firebase oyun sayfasından .

Firebase'i C++ projenize zaten eklediniz mi? Eğer en son sürümünü kullandığınızdan emin olun Firebase C ++ SDK .

Önkoşullar

  • Android Studio, IntelliJ veya VS Code gibi tercih ettiğiniz düzenleyiciyi veya IDE'yi yükleyin.

  • Edinme Android SDK .

  • Projenizin şu gereksinimleri karşıladığından emin olun:

  • Uygulamanızı çalıştırmak için fiziksel bir cihaz kurun veya bir öykünücü kullanın.

    • Emulators Google Play ile bir emülatör resim kullanmak gerekir.

    • Bazı C++ kitaplıkları için istemci cihazda Google Play hizmetleri gereklidir; gözden liste bu sayfada.

  • Firebase oturum açın Google hesabınızı kullanarak.

Adım 2: Bir Firebase projesi oluşturma

Firebase'i C++ projenize eklemeden önce, C++ projenize bağlanmak için bir Firebase projesi oluşturmanız gerekir. Ziyaret Firebase Projeleri Anlayın Firebase projeleri hakkında daha fazla bilgi edinmek.

3. Adım: Firebase ile uygulamanızı kaydedin

Firebase'i Android uygulamanızda kullanmak için uygulamanızı Firebase projenize kaydetmeniz gerekir. Uygulamanızı kaydetmeye genellikle uygulamanızı projenize "eklemek" denir.

  1. Git Firebase konsoluna .

  2. Proje genel bakış Sayfanın ortasında, Android simgesine (tıklayın ) veya kurulum iş akışını başlatmak için uygulamayı ekleyin.

  3. Android paketi adı alanına uygulamanızın paket adını girin.

  4. (İsteğe bağlı) diğer uygulama bilgileri girin: Uygulama adı ve hata ayıklama imzalama sertifikası SHA-1.

  5. Kayıt uygulamasını tıklayın.

Adım 4: Firebase yapılandırma dosyasını ekle

  1. Senin Firebase Android yapılandırma dosyasını edinmek için İndirme google-services.json tıklayın.

  2. C++ projenizi bir IDE'de açın, ardından yapılandırma dosyanızı projenize ekleyin:

  3. , C ++ projede Firebase hizmetlerini etkinleştirmek eklemek için (Gradle yalnızca oluşturur) eklentisi google-hizmetlerini en üst düzey için build.gradle dosyası.

    1. Google Services Gradle eklentisini dahil etmek için kurallar ekleyin. Google'ın Maven deposuna da sahip olduğunuzu kontrol edin.

        buildscript {
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
          }
      
          dependencies {
            // ...
      
            // Add the following lines:
            classpath 'com.google.gms:google-services:4.3.10'  // Google Services plugin
            implementation 'com.google.android.gms:17.6.0'
          }
        }
      
        allprojects {
          // ...
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
            // ...
          }
        }
      
    2. Google Services Gradle eklentisini uygulayın:

        apply plugin: 'com.android.application'
        // Add the following line:
        apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
        android {
          // ...
        }
      
  4. Firebase konsolunda kurulum görevlerini tamamladınız. Devam Firebase C ++ SDK'larını ekleyin aşağıda.

Adım 5: Firebase C ++ SDK'lerini ekle

Bu bölümdeki adımlar nasıl ekleneceği bir örnektir desteklenen Firebase ürünlerini sizin Firebase C ++ projeye.

  1. İndir Firebase C ++ SDK , ardından SDK yere uygun halletmek.

    Firebase C++ SDK, platforma özel değildir, ancak platforma özel kitaplıklar içerir.

  2. Projeniz var ise gradle.properties dosyasını, Çýkartýlan SDK konumunu belirtmek:

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  3. Projenizin için settings.gradle dosyası, aşağıdaki içeriği ekleyin:

    def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
    
    gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
    includeBuild "$firebase_cpp_sdk_dir"
    
  4. Senin modülü (uygulama düzeyinde) Gradle dosyası (genellikle için app/build.gradle ), aşağıdaki içeriği ekleyin.
    Dahil kütüphane bağımlılıkları uygulamanızda kullanmak istediğiniz Firebase ürünleri için.

    Analytics etkinleştirildi

    android.defaultConfig.externalNativeBuild.cmake {
    arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependencies for the Firebase products you want to use in your app
    # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
      auth
      database
    }
    

    Analytics etkinleştirilmedi

    android.defaultConfig.externalNativeBuild.cmake {
    arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependencies for the Firebase products you want to use in your app
    # For example, to use Firebase Authentication and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      auth
      database
    }
    
  5. Projenizin için CMakeLists.txt dosyası, aşağıdaki içeriği ekleyin.
    Dahil kütüphaneleri uygulamanızda kullanmak istediğiniz Firebase ürünleri için.

    Analytics etkinleştirildi

    # 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 Analytics, Firebase Authentication, and Firebase Realtime Database
    set(firebase_libs
      firebase_analytics
      firebase_auth
      firebase_database
      firebase_app
    )
    target_link_libraries(${target_name} "${firebase_libs}")
    

    Analytics etkinleştirilmedi

    # 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}")
    
  6. Tüm bağımlılıkların gerekli sürümlere sahip olduğundan emin olmak için uygulamanızı senkronize edin.

  7. Analytics'i eklediyseniz, Firebase'i başarıyla entegre ettiğinize dair doğrulamayı Firebase'e göndermek için uygulamanızı çalıştırın. Aksi takdirde, doğrulama adımını atlayabilirsiniz.

    Cihaz günlükleriniz, başlatmanın tamamlandığına dair Firebase doğrulamasını görüntüler. Ağ erişimi olan bir emülatör üzerinde uygulamanızı ran ise Firebase konsol uygulama bağlantısı tamamlandıktan bildirdiğinde o.

Hazırsınız! C++ uygulamanız kayıtlı ve Firebase hizmetlerini kullanacak şekilde yapılandırılmış.

Kullanılabilir kitaplıklar

C ++ Firebase kütüphaneleri hakkında daha fazla bilgi referans belgeleri ve bizim açık kaynak SDK açıklamasında GitHub'dan .

Android için mevcut kütüphaneler (CMake kullanarak)

İOS için C ++ kütüphaneleri dahil olması Not bu kurulum sayfasının iOS sürümü .

Firebase ürünü Kütüphane referansları
( firebaseCpp.dependencies
için build.gradle ) dosyası
Kütüphane referansları
( firebase_libs
için CMakeLists.txt ) dosyası
AdMob admob firebase_admob
(gerekli) firebase_analytics
(gerekli) firebase_app
Analitik analytics firebase_analytics
(gerekli) firebase_app
kimlik doğrulama auth firebase_auth
(gerekli) firebase_app
Bulut Firestore (beta) firestore firebase_firestore
(gerekli) firebase_auth
(gerekli) firebase_app
Bulut İşlevleri functions firebase_functions
(gerekli) firebase_app
Bulut Mesajlaşma messaging firebase_messaging
(önerilir) firebase_analytics
(gerekli) firebase_app
Bulut depolama storage firebase_storage
(gerekli) firebase_app
Dinamik Bağlantılar dynamicLinks firebase_dynamic_links
(önerilir) firebase_analytics
(gerekli) firebase_app
Gerçek Zamanlı Veritabanı database firebase_database
(gerekli) firebase_app
Uzak Yapılandırma remoteConfig firebase_remote_config
(önerilir) firebase_analytics
(gerekli) firebase_app

Mobil kurulum için ek bilgiler

NDK kilitlenme raporlarını alın

Firebase Crashlytics, Android yerel kitaplıklarını kullanan uygulamalar için kilitlenme raporlamasını destekler. Daha fazla bilgi için bkz Android NDK kilitlenme raporlarını alın .

Özel yapım sistemleri

Firebase komut sağlar generate_xml_from_google_services_json.py dönüştürmek için google-services.json için .xml projenizde içerebileceğini kaynaklar. Bu komut dosyası, Google Play hizmetleri Gradle eklentisinin Android uygulamaları oluştururken gerçekleştirdiği dönüşümün aynısını uygular.

(Örneğin, vb ndk-yapı, makefiles, Visual Studio, kullanın) Eğer Gradle kullanarak inşa yoksa, sen oluşturulmasını otomatikleştirmek için bu komut dosyasını kullanabilirsiniz Android Dize Kaynakları .

ProGuard

Birçok Android inşa sistemleri kullanmak , ProGuard uygulama boyutları ve koruma Java kaynak kodunu küçültmek için yayın modunda inşa için.

Eğer ProGuard kullanıyorsanız, dosyaları eklemeniz gerekir libs/android/*.pro size ProGuard yapılandırmasında kullanmakta olduğunuz Firebase C ++ kütüphaneleri karşılık gelir.

Google Analytics kullanıyorsanız Örneğin, Gradle ile, senin build.gradle dosyası gibi görünecektir:

android {
  // ...
  buildTypes {
    release {
      minifyEnabled true
      proguardFile getDefaultProguardFile('your-project-proguard-config.txt')
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/app.pro")
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/analytics.pro")
      // ...  and so on, for each Firebase C++ library that you're using
    }
  }
}

Google Play hizmetleri gereksinimi

En Firebase C ++ kütüphaneleri gerektirir Google Play hizmetlerini müşterinin Android cihazda olması. Bir Firebase C ++ kütüphanesi döner Eğer kInitResultFailedMissingDependency ilklendirilişinde, Google Play'in hizmetleri anlamına gelir (bu, izinler sabit vb güncellenen yeniden gerektiğini anlamına gelir) istemci cihazda kullanılamaz. Firebase kitaplığı, istemci cihazdaki durum düzeltilinceye kadar kullanılamaz.

Google Play hizmetleri, müşteri cihazında neden kullanılamadığını öğrenmek (ve bunu düzeltmek için deneyin) içinde işlevlerini kullanarak yapabilirsiniz google_play_services/availability.h .

Aşağıdaki tabloda, desteklenen her bir Firebase ürünü için bir istemci cihazda Google Play hizmetlerinin gerekli olup olmadığı listelenmektedir.

Firebase C++ Kitaplığı İstemci cihazında Google Play hizmetleri gerekli mi?
AdMob Gerekli değil (genellikle)
Analitik Gerekli değil
kimlik doğrulama Gerekli
Bulut Firestore Gerekli
Bulut İşlevleri Gerekli
Bulut Mesajlaşma Gerekli
Bulut depolama Gerekli
Dinamik Bağlantılar Gerekli
Gerçek Zamanlı Veritabanı Gerekli
Uzak Yapılandırma Gerekli

AdMob ve Google Play hizmetleri

Android için Google Mobile Ads SDK'sının çoğu sürümü, istemci cihazda Google Play hizmetleri olmadan düzgün şekilde çalışabilir. Kullandığınız Ancak, com.google.android.gms:play-services-ads-lite bağımlılık, yerine standart com.google.firebase:firebase-ads yukarıda listelenen bağımlılık, Google Play hizmetleri gereklidir.

AdMob başlatma sadece dönecektir kInitResultFailedMissingDependency şu her ikisi de olduğunda:

  • Google Play hizmetleri istemci cihazda kullanılamıyor.
  • Kullandığınız com.google.android.gms:play-services-ads-lite .

Bir masaüstü iş akışı (beta) kurma

Bir oyun oluştururken, oyununuzu önce masaüstü platformlarında test etmek, ardından geliştirme aşamasında mobil cihazlarda dağıtmak ve test etmek genellikle çok daha kolaydır. Bu iş akışını desteklemek için, bir sağlamak Firebase C ++ SDK'larının alt kümesini Windows, MacOS, Linux ve C içinden ++ editörü yayınlanabilir.

  1. Masaüstü iş akışları için aşağıdakileri tamamlamanız gerekir:

    1. C++ projenizi CMake için yapılandırın.
    2. Bir Firebase projesi oluşturun
    3. Uygulamanızı (iOS veya Android) Firebase'e kaydedin
    4. Bir mobil platform Firebase yapılandırma dosyası ekleyin
  2. Firebase yapılandırma dosyasının bir masaüstü sürümünü oluşturun:

    • Android eklediyseniz google-services.json dosyasını - uygulamanızı çalıştırdığınızda, Firebase bu cep dosyayı bulur, sonra otomatik olarak bir masaüstü Firebase yapılandırma dosyası (üretir google-services-desktop.json ).

    • İOS eklediyseniz GoogleService-Info.plist dosyasını - uygulamanızı çalıştırmadan önce bir masaüstü Firebase yapılandırma dosyasına bu cep dosyayı dönüştürmek gerekir. Dosyayı dönüştürmek için, aynı dizinden aşağıdaki komutu çalıştırın GoogleService-Info.plist dosyasında:

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

    Bu masaüstü yapılandırma dosyası, Firebase konsol kurulum iş akışına girdiğiniz C++ proje kimliğini içerir. Ziyaret Firebase Projeler anlama yapılandırma dosyaları hakkında daha fazla bilgi edinmek için.

  3. C++ projenize Firebase SDK'ları ekleyin.

    Aşağıdaki adımlar herhangi eklemek için nasıl bir örnek teşkil desteklenen Firebase ürünü C ++ projeye. Bu örnekte, Firebase Authentication ve Firebase Realtime Database ekleyerek ilerliyoruz.

    1. Senin Set FIREBASE_CPP_SDK_DIR Unzipped Firebase C ++ SDK konuma ortam değişkeni.

    2. Projenizin için CMakeLists.txt dosyası da dahil olmak üzere, aşağıdaki içerik eklemek kütüphaneleri kullanmak istediğiniz o Firebase ürünleri için. Örneğin, Firebase Authentication ve Firebase Realtime Database'i kullanmak için:

      # 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++ uygulamanızı çalıştırın.

Kullanılabilir kitaplıklar (masaüstü)

Firebase C ++ SDK içerir masaüstü iş akışı desteği Windows, MacOS ve Linux üzerine inşa bağımsız masaüstüne kullanılmak üzere Firebase belirli bölümlerine sağlayan özellikleri bir alt kümesi için.

Firebase ürünü Kitaplık referansları (CMake kullanarak)
kimlik doğrulama firebase_auth
(gerekli) firebase_app
Bulut Firestore (beta) firebase_firestore
firebase_auth
firebase_app
Bulut İşlevleri firebase_functions
(gerekli) firebase_app
Bulut depolama firebase_storage
(gerekli) firebase_app
Gerçek Zamanlı Veritabanı firebase_database
(gerekli) firebase_app
Uzak Yapılandırma firebase_remote_config
(gerekli) firebase_app

Firebase, Windows, macOS ve Linux için derlerken kolaylık sağlamak için kalan masaüstü kitaplıklarını saplama (işlevsel olmayan) uygulamalar olarak sağlar. Bu nedenle, masaüstünü hedeflemek için koşullu olarak kod derlemeniz gerekmez.

Gerçek Zamanlı Veritabanı masaüstü

Eğer gerekir, böylece masaüstü için Gerçek Zamanlı Veri Tabanı SDK sizin veritabanına erişim DİNLENME kullanır endeksler beyan Birlikte kullandıkları Query::OrderByChild() masaüstünüzde veya dinleyici başarısız olacaktır.

Masaüstü kurulumu için ek bilgiler

Windows kitaplıkları

Windows için kitaplık sürümleri aşağıdakilere dayalı olarak sağlanır:

  • Oluşturma platformu: 32 bit (x86) vs 64 bit (x64) modu
  • Windows çalışma zamanı ortamı: Multithreaded / MT vs Multithreaded DLL /MD
  • Hedef: Yayın ve Hata Ayıklama

Aşağıdaki kitaplıkların Visual Studio 2015 ve 2017 kullanılarak test edildiğini unutmayın.

Windows'ta C++ masaüstü uygulamaları oluştururken, aşağıdaki Windows SDK kitaplıklarını projenize bağlayın. Daha fazla bilgi için derleyici belgelerinize bakın.

Firebase C++ Kitaplığı Windows SDK kitaplığı bağımlılıkları
kimlik doğrulama advapi32, ws2_32, crypt32
Bulut Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Bulut İşlevleri advapi32, ws2_32, crypt32, rpcrt4, ole32
Bulut depolama advapi32, ws2_32, crypt32
Gerçek Zamanlı Veritabanı advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Uzak Yapılandırma advapi32, ws2_32, crypt32, rpcrt4, ole32

macOS kitaplıkları

macOS (Darwin) için 64 bit (x86_64) platformu için kitaplık sürümleri sağlanır. Size kolaylık sağlamak için çerçeveler de sağlanmıştır.

macOS kitaplıklarının Xcode 12 kullanılarak test edildiğini unutmayın.

macOS üzerinde C++ masaüstü uygulamaları oluştururken aşağıdakileri projenize bağlayın:

  • pthread sistem kitaplığı
  • CoreFoundation MacOS sistem çerçevesi
  • Foundation MacOS sistem çerçevesi
  • Security MacOS sistem çerçevesi
  • GSS MacOS sistem çerçevesi
  • Kerberos MacOS sistem çerçevesi
  • SystemConfiguration MacOS sistem çerçevesi

Daha fazla bilgi için derleyici belgelerinize bakın.

Linux kitaplıkları

Linux için, 32 bit (i386) ve 64 bit (x86_64) platformları için kitaplık sürümleri sağlanır.

Linux kitaplıklarının Ubuntu'da GCC 4.8.0, GCC 7.2.0 ve Clang 5.0 kullanılarak test edildiğini unutmayın.

Linux üzerinde C ++ masaüstü uygulamaları oluştururken, bağlantı pthread projenize sistem kütüphanesi. Daha fazla bilgi için derleyici belgelerinize bakın. Daha sonra GCC 5 veya konum bina ise tanımlamak -D_GLIBCXX_USE_CXX11_ABI=0 .

Sonraki adımlar