Google is committed to advancing racial equity for Black communities. See how.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Firebase'i C ++ projenize ekleyin

İOS ve Android için Firebase'in yanı sıra C ++ arayüzü sağlayan Firebase C ++ SDK'larımızla C ++ oyunlarınızı güçlendirin.

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

Oyunlarınızı Firebase ile güçlendirmek hakkında daha fazla bilgiyi Firebase oyunları sayfamızda bulabilirsiniz .

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

Önkoşullar

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

  • Android SDK'yı edinin.

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

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

    • Emülatörler , Google Play ile bir emülatör görüntüsü kullanmalıdır.

    • Bazı C ++ kitaplıkları için, istemci cihazda Google Play hizmetleri gereklidir; bu sayfadaki listeyi gözden geçirin.

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

2. Adım : Bir Firebase projesi oluşturun

Firebase'i C ++ projenize eklemeden önce, C ++ projenize bağlanmak için bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama bölümünü ziyaret edin.

3. Adım : Uygulamanızı Firebase'e 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. Firebase konsoluna gidin .

  2. Projeye genel bakış sayfasının , kurulum iş akışını başlatmak için Android simgesini ( ) veya Uygulama tıklayın.

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

  4. (İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve Hata ayıklama imzalama sertifikası SHA-1 .

  5. Uygulamayı kaydet'i tıklayın.

4. Adım : Firebase yapılandırma dosyasını ekleyin

  1. Firebase Android yapılandırma dosyanızı almak için google-services.json indir'i tıklayın.

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

  3. (Yalnızca Gradle derlemeleri) C ++ projenizde Firebase hizmetlerini etkinleştirmek için google-services eklentisini üst düzey build.gradle dosyanıza build.gradle .

    1. Google Services Gradle eklentisini içerecek kurallar ekleyin. Google'ın Maven deposuna sahip olup olmadığınızı da 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.5'  // 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. Aşağıdaki Firebase C ++ SDK'ları Eklemeye devam edin.

5. Adım : Firebase C ++ SDK'larını ekleyin

Bu bölümdeki adımlar, Firebase C ++ projenize desteklenen Firebase ürünlerinin nasıl ekleneceğinin bir örneğidir.

  1. Firebase C ++ SDK'yı indirin, ardından SDK'yı uygun bir yerde açın.

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

  2. Açılmış SDK'nın konumunu projenizin gradle.properties dosyasında gradle.properties :

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  3. Aşağıdakileri projenizin settings.gradle dosyasına 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. Aşağıdakileri modül (uygulama düzeyi) Gradle dosyanıza ekleyin (genellikle app/build.gradle ):

    android.defaultConfig.externalNativeBuild.cmake {
      arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
    }
    
  5. Projenizin CMakeLists.txt dosyasına, uygulamanızda kullanmak istediğiniz Firebase ürünleri için kitaplıklar dahil olmak üzere aşağıdaki içeriği ekleyin.

    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 eklediyseniz, Firebase'e başarılı bir şekilde 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österecektir. Uygulamanızı ağ erişimi olan bir emülatörde çalıştırdıysanız Firebase konsolu , uygulama bağlantınızın tamamlandığını size bildirir.

Hazırsınız! C ++ uygulamanız kaydedildi ve Firebase hizmetlerini kullanacak şekilde yapılandırıldı.

Mevcut kitaplıklar

Referans belgelerinde ve GitHub'daki açık kaynaklı SDK sürümümüzde C ++ Firebase kitaplıkları hakkında daha fazla bilgi edinin.

Android için mevcut kitaplıklar (CMake kullanarak)

İOS için C ++ kitaplıklarının bu kurulum sayfasının iOS sürümünde listelendiğini unutmayın.

Firebase ürünü Kitaplık referansları (CMake kullanarak)
AdMob firebase_admob
(gerekli) firebase_analytics
(gerekli) firebase_app
Analitik firebase_analytics
(gerekli) firebase_app
Doğrulama firebase_auth
(gerekli) firebase_app
Cloud Firestore (beta) firebase_firestore
(gerekli) firebase_app
(gerekli) firebase_auth
Bulut İşlevleri firebase_functions
(gerekli) firebase_app
Bulut Mesajlaşma firebase_messaging
(önerilen) firebase_analytics
(gerekli) firebase_app
Bulut depolama firebase_storage
(gerekli) firebase_app
Dinamik Bağlantılar firebase_dynamic_links
(önerilen) firebase_analytics
(gerekli) firebase_app
Gerçek Zamanlı Veritabanı firebase_database
(gerekli) firebase_app
Uzaktan Yapılandırma firebase_remote_config
(önerilen) 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 edinmek için bkz.Android NDK kilitlenme raporları alma .

Özel yapım sistemleri

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

Gradle kullanarak derleme yapmazsanız (örneğin, ndk-build, makefiles, Visual Studio, vb. Kullanırsanız), Android Dize Kaynaklarının oluşturulmasını otomatikleştirmek için bu komut dosyasını kullanabilirsiniz.

ProGuard

Birçok Android derleme sistemi, uygulama boyutlarını küçültmek ve Java kaynak kodunu korumak için Yayın modunda derlemeler için ProGuard kullanır.

ProGuard kullanıyorsanız, ProGuard yapılandırmanızda kullandığınız Firebase C ++ kitaplıklarına karşılık gelen dosyaları libs/android/*.pro biçiminde eklemeniz gerekir.

Örneğin, Gradle ile, Google Analytics kullanıyorsanız, build.gradle dosyanız şöyle 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

Çoğu Firebase C ++ kitaplığı, Google Play hizmetlerinin istemcinin Android cihazında olmasını gerektirir. Bir kInitResultFailedMissingDependency C ++ kitaplığı, başlatma sırasında kInitResultFailedMissingDependency döndürürse, bu, Google Play hizmetlerinin istemci cihazında kullanılamadığı anlamına gelir (yani güncellenmesi, yeniden etkinleştirilmesi, izinlerin düzeltilmesi vb.). Firebase kitaplığı, istemci cihazdaki durum düzeltilene kadar kullanılamaz.

google_play_services/availability.h içindeki işlevleri kullanarak, Google Play hizmetlerinin istemci cihazda neden kullanılamadığını öğrenebilir (ve düzeltmeyi deneyebilirsiniz).

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

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

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 çalışabilir. Ancak, yukarıda listelenen standart com.google.firebase:firebase-ads bağımlılığı yerine com.google.android.gms:play-services-ads-lite bağımlılığını kullanıyorsanız, Google Play hizmetleri gereklidir .

AdMob'un başlatılması, yalnızca aşağıdakilerin her ikisi de doğru olduğunda kInitResultFailedMissingDependency döndürür:

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

Bir masaüstü iş akışı ( beta ) ayarlayın

Bir oyun oluştururken, genellikle oyununuzu önce masaüstü platformlarında test etmek, ardından geliştirmede daha sonra mobil cihazlarda dağıtmak ve test etmek çok daha kolaydır. Bu iş akışını desteklemek için Windows, macOS, Linux ve C ++ düzenleyicisinin içinden çalışabilen Firebase C ++ SDK'larının bir alt kümesini sağlıyoruz.

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

    1. CMake için C ++ projenizi yapılandırın.
    2. Firebase projesi oluşturun
    3. Uygulamanızı (iOS veya Android) Firebase'e kaydedin
    4. 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 google-services.json dosyasını eklediyseniz - Uygulamanızı çalıştırdığınızda, Firebase bu mobil dosyayı bulur ve ardından otomatik olarak bir masaüstü Firebase yapılandırma dosyası ( google-services-desktop.json ) oluşturur.

    • GoogleService-Info.plist dosyasını GoogleService-Info.plist - Uygulamanızı çalıştırmadan önce bu mobil dosyayı bir masaüstü Firebase yapılandırma dosyasına dönüştürmeniz gerekir. Dosyayı dönüştürmek için, GoogleService-Info.plist dosyanızla aynı GoogleService-Info.plist aşağıdaki komutu çalıştırın:

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

    Bu masaüstü yapılandırma dosyası, Firebase konsolu kurulum iş akışına girdiğiniz C ++ proje kimliğini içerir. Yapılandırma dosyaları hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama sayfasını ziyaret edin.

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

    Aşağıdaki adımlar, desteklenen herhangi bir Firebase ürününün C ++ projenize nasıl ekleneceğinin bir örneğidir. Bu örnekte, Firebase Authentication ve Firebase Realtime Database'i eklemenin üzerinden geçiyoruz.

    1. FIREBASE_CPP_SDK_DIR ortam değişkeninizi, FIREBASE_CPP_SDK_DIR C ++ SDK'sının konumuna ayarlayın.

    2. Projenizin CMakeLists.txt dosyasına, kullanmak istediğiniz Firebase ürünleri için kitaplıklar dahil olmak üzere aşağıdaki içeriği ekleyin. Örneğin, Firebase Authentication ve Firebase Realtime Database 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, bir özellik alt kümesi için masaüstü iş akışı desteği içerir ve Firebase'in belirli bölümlerinin Windows, macOS ve Linux'ta bağımsız masaüstü derlemelerinde kullanılmasını sağlar.

Firebase ürünü Kitaplık referansları (CMake kullanarak)
Doğrulama firebase_auth
(gerekli) firebase_app
Cloud 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
Uzaktan Yapılandırma firebase_remote_config
(gerekli) firebase_app

Firebase, Windows, macOS ve Linux için derleme yaparken 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 kodu koşullu olarak derlemenize gerek yoktur.

Gerçek Zamanlı Veritabanı masaüstü

Masaüstü için Realtime Database SDK, veritabanınıza erişmek için REST kullanır, bu nedenle Query::OrderByChild() ile kullandığınız dizinleri masaüstünde bildirmeniz gerekir , aksi takdirde dinleyicileriniz başarısız olur.

Masaüstü kurulumu için ek bilgiler

Windows kitaplıkları

Windows için kitaplık sürümleri aşağıdakilere göre sağlanır:

  • Derleme platformu: 32 bit (x86) - 64 bit (x64) modu
  • Windows çalışma zamanı ortamı: Çok iş parçacıklı / MT ve Çok iş parçacıklı DLL / MD
  • Hedef: Yayın - Hata Ayıklama Karşılaştırması

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

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

Firebase C ++ Kitaplığı Windows SDK kitaplığı bağımlılıkları
Doğrulama advapi32, ws2_32, crypt32
Cloud 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
Uzaktan Yapılandırma advapi32, ws2_32, crypt32, rpcrt4, ole32

macOS kitaplıkları

MacOS (Darwin) için, kitaplık sürümleri 64 bit (x86_64) platformu için sağlanmıştı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'ta 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 derleyicinizin belgelerine bakın.

Linux kitaplıkları

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

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

Linux'ta C ++ masaüstü uygulamaları oluştururken, pthread sistem kitaplığını projenize bağlayın. Daha fazla bilgi için derleyicinizin belgelerine bakın. GCC 5 veya üstü ile oluşturuyorsanız, -D_GLIBCXX_USE_CXX11_ABI=0 tanımlayın.

Sonraki adımlar