Firebase'i C++ projenize ekleyin

C++ sağlayan Firebase C++ SDK'larımızla C++ oyunlarınızı güçlendirin. en üst düzeye çıktı.

Firebase'e hiçbir şey yazmak zorunda kalmadan tamamen C++ kodunuzdan erişin platformda yerel kod. Firebase SDK'sı ayrıca dile özgü birçok dili, Firebase tarafından kullanılan deyimler, C++ geliştiricilerine daha tanıdık gelecektir.

Firebase ile oyunlarınızı güçlendirme hakkında daha fazla bilgi için Firebase oyunları sayfası.

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


Ön koşullar

  • Tercih ettiğiniz düzenleyiciyi veya IDE'yi (ör. Android Studio, IntelliJ) yükleyin, veya VS Code.

  • Android SDK'sını edinin.

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

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

  • Google Hesabınızla Firebase'de oturum açın hesap.

2. Adım: Firebase projesi oluşturun

Firebase'i C++ projenize ekleyebilmek için öncelikle bir Firebase oluşturmanız gerekir projenize bağlayacağınızdan emin olun. Ziyaret edin: Şu konular hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlama: Firebase projeleri.

3. adım: Uygulamanızı Firebase'e kaydedin

Firebase'i Android uygulamanızda kullanmak için, uygulamanızı Firebase projesi. Uygulamanızı kaydetme işlemi genellikle "ekleme" olarak adlandırılır uygulamanızı belirler.

  1. Firebase konsoluna gidin.

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

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

    ziyaret edin.
  4. (İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve SHA-1 imza sertifikası hatalarını ayıkla.

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

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

  1. Firebase Android sürümünüzü edinmek için google-services.json'u indir'i tıklayın. yapılandırma dosyası.

  2. C++ projenizi 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'i ekleyin eklenti üst düzey build.gradle dosyanıza ekleyin.

    1. Google Hizmetleri Gradle eklentisini içerecek kurallar ekleyin. Lütfen Google'ın Maven deposuna da sahip.

        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.4.2'  // Google Services plugin
            implementation 'com.google.android.gms:18.5.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 görevleri ayarlama işlemini tamamladınız. Şuna devam edin: Aşağıda Firebase C++ SDK'larını ekleyin.

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

Bu bölümdeki adımlar, desteklenen Firebase'in nasıl ekleneceğine ilişkin bir örnektir. Firebase C++ projesi.

  1. Firebase C++ SDK'sını indirin, ardından SDK'yı uygun bir yerde sıkıştırılmış dosyayı açın.

    Firebase C++ SDK'sı platforma özel değildir ancak aşağıdakileri içerir: kullanabilirsiniz.

  2. Projenizin gradle.properties dosyasında sıkıştırılmış SDK:

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  3. Projenizin settings.gradle dosyasına 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. Modülü (uygulama düzeyinde) Gradle dosyanıza (genellikle app/build.gradle) daha fazla bilgi edineceksiniz.
    . Şunu dahil et: kitaplık bağımlılıkları seçmeniz gerekir.

    Analytics etkin

    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 CMakeLists.txt dosyasına aşağıdaki içeriği ekleyin.
    . Şunu dahil et: şu kitap için kitaplıklar: uygulamanızda kullanmak istediğiniz Firebase ürünlerini seçin.

    Analytics etkin

    # 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ıların gerekli sürümlere sahip olduğundan emin olmak için uygulamanızı senkronize edin.

  7. Analytics eklentisini eklediyseniz Firebase'e doğrulama göndermek için uygulamanızı çalıştırın Firebase'i başarıyla entegre ettiğinizden emin olun. Aksi takdirde doğrulama adımını ele alalım.

    Cihaz günlüklerinizde, başlatma işleminin gerçekleştirildiği Firebase doğrulaması gösterilir tamamlandı. Uygulamanızı ağ erişimi olan bir emülatörde çalıştırdıysanız Firebase konsolunda, uygulama bağlantınızın tamamlandığı bildirilir.

Hepsi bu kadar. C++ uygulamanız Firebase'i kullanacak şekilde kaydedildi ve yapılandırıldı kullanıma sunuyoruz.

Kullanılabilen kitaplıklar

C++ Firebase kitaplıkları hakkında daha fazla bilgiyi şurada bulabilirsiniz: referans belgeleri ve açık kaynak SDK'mızda GitHub'da sürüm oluşturabilirsiniz.

Android için kullanılabilen kitaplıklar (CMake kullanarak)

Apple platformları için C++ kitaplıklarının Apple platformlarında listelendiğini unutmayın. (iOS+) sürümünün yüklü olması gerekir.

Firebase ürünü Kitaplık referansları
(firebaseCpp.dependencies
build.gradle dosya için)
Kitaplık referansları
(firebase_libs
CMakeLists.txt dosya için)
AdMob admob
firebase_admob (gerekli) firebase_analytics
(zorunlu) firebase_app
Analytics analytics
firebase_analytics (gerekli) firebase_app
App Check appCheck
firebase_app_check (gerekli) firebase_app
Authentication auth
firebase_auth (gerekli) firebase_app
Cloud Firestore firestore
firebase_firestore (gerekli) firebase_auth
(zorunlu) firebase_app
Cloud Functions functions
firebase_functions (gerekli) firebase_app
Cloud Messaging messaging
firebase_messaging (önerilen) firebase_analytics
(zorunlu) firebase_app
Cloud Storage storage
firebase_storage (gerekli) firebase_app
Dynamic Links dynamicLinks
firebase_dynamic_links (önerilen) firebase_analytics
(zorunlu) firebase_app
Realtime Database database
firebase_database (gerekli) firebase_app
Remote Config remoteConfig
firebase_remote_config (önerilen) firebase_analytics
(zorunlu) firebase_app

Mobil cihaz kurulumu için ek bilgiler

NDK kilitlenme raporlarını al

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

Özel derleme sistemleri

Firebase, generate_xml_from_google_services_json.py komut dosyasını sağlayarak google-services.json öğesini, ekleyebileceğiniz .xml kaynağa dönüştürün akılda kalıcı bir yolunu sunar. Bu komut dosyası Google Play'deki komut dosyasıyla aynı dönüşümü hizmetleri Gradle eklentisidir.

Gradle kullanarak derleme yapmıyorsanız (örneğin, ndk-build, makefiles, Visual Studio vb.) kullanarak içerik oluşturma sürecini otomatikleştirmek için bu komut dosyasını Android Dizesi Kaynaklar.

ProGuard

Birçok Android derleme sistemi, Şuradaki derlemeler için ProGuard: Uygulama boyutlarını küçültmek ve Java kaynak kodunu korumak için bırakma modu.

ProGuard kullanıyorsanız dosyaları libs/android/*.pro klasörüne eklemeniz gerekir. ProGuard'ınızda kullandığınız Firebase C++ kitaplıklarına karşılık gelir yapılandırma.

Örneğin, Gradle ile Google Analytics kullanıyorsanız build.gradle dosyanız şöyle görünür:

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 şartı

Çoğu Firebase C++ kitaplığı gerekir Google Play Hizmetleri istemcinin Android cihazında olmalıdır. Firebase C++ kitaplığı döndürülürse kInitResultFailedMissingDependency Google Play Hizmetleri, Google Play Store'da kullanılamaz. (yani güncellenmesi, yeniden etkinleştirilmesi ve izin sabit vb.) belirtin. Firebase kitaplığı, düzeltildiğinden emin olun.

Google Play Hizmetleri'nin istemci cihazda neden kullanılamadığını öğrenebilirsiniz (ve bunu düzeltmeye çalışmak için) google_play_services/availability.h.

Aşağıdaki tabloda, bir istemcide Google Play Hizmetleri'nin gerekli olup olmadığı listelenmiştir. bir cihaz ekler.

Firebase C++ Kitaplığı İstemci cihazında Google Play Hizmetleri gerekli mi?
AdMob Zorunlu değil (genellikle)
Analytics Zorunlu değil
Authentication Zorunlu
Cloud Firestore Zorunlu
Cloud Functions Zorunlu
Cloud Messaging Zorunlu
Cloud Storage Zorunlu
Dynamic Links Zorunlu
Realtime Database Zorunlu
Remote Config Zorunlu

AdMob ve Google Play hizmetleri

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

AdMob başlatma işlemi yalnızca kInitResultFailedMissingDependency sonucunu döndürür şunların her ikisi de doğru olduğunda:

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

Masaüstü iş akışı oluşturma (beta)

Oyun geliştirirken oyununuzu masaüstünde test etmek genellikle çok daha kolaydır önce mobil cihazlarda dağıtıp test etmek, daha sonra geliştirme aşamasında bunları mobil cihazlara dağıtmak ve test etmektir. Alıcı: yardımcı oluyorum. şurada çalışabilen Firebase C++ SDK'sının alt kümesidir: Windows, macOS, Linux ve C++ düzenleyicisinden yararlanabilirsiniz.

  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şturma
    3. Uygulamanızı (iOS veya Android) Firebase'e kaydetme
    4. Mobil platform Firebase yapılandırma dosyası ekleme
  2. Firebase yapılandırma dosyasının masaüstü sürümünü oluşturun:

    • Android google-services.json dosyasını eklediyseniz: Firebase bu mobil dosyayı bulur ve daha sonra masaüstü Firebase yapılandırma dosyası oluşturur (google-services-desktop.json).

    • iOS GoogleService-Info.plist dosyasını eklediyseniz - Çalıştırmadan önce uygulamanız gerekiyorsa bu mobil dosyayı bir masaüstü Firebase'e dönüştürmeniz gerekir yapılandırma dosyası. Dosyayı dönüştürmek için aynı dizinini GoogleService-Info.plist dosyanız olarak kullanın:

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

    Bu masaüstü yapılandırma dosyası, girdiğiniz C++ proje kimliğini içerir Firebase konsolu kurulum iş akışını uygulayın. Ziyaret edin: Firebase Projelerini Anlama inceleyebilirsiniz.

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

    Aşağıdaki adımlar, destekleyen Firebase ürününü adımları uygulayın. Bu örnekte, Firebase Authentication ve Firebase Realtime Database.

    1. FIREBASE_CPP_SDK_DIR ortam değişkeninizi şu konuma ayarlayın: çıkartılmış Firebase C++ SDK'sı.

    2. Projenizin CMakeLists.txt dosyasına aşağıdaki içeriği ekleyin: Bu kitapla ilgili kitaplıklar da dahil olmak üzere Firebase ürünlerini seçin. Örneğin, Firebase Authentication ve Firebase Realtime Database:

      # 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'sı masaüstü iş akışı desteği içeriyor kullanarak Firebase'in belirli kısımlarının kullanılabilmesini sağlar. .

Firebase ürünü Kitaplık referansları (CMake kullanarak)
App Check
firebase_app_check (gerekli) firebase_app
Authentication
firebase_auth (gerekli) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
Cloud Functions
firebase_functions (gerekli) firebase_app
Cloud Storage
firebase_storage (gerekli) firebase_app
Realtime Database
firebase_database (gerekli) firebase_app
Remote Config
firebase_remote_config (gerekli) firebase_app

Firebase, kalan masaüstü kitaplıklarını taslak olarak sağlar (işlevsel değildir) uygulamaları geliştiriyoruz. Bu nedenle, masaüstünü hedeflemek için kodu koşullu olarak derlemeniz gerekmez.

Realtime Database masaüstü

Masaüstü için Realtime Database SDK'sı, veritabanınıza erişmek için REST kullandığından aşağıdaki kriterlere uyan endeksleri tanımlayın: Query::OrderByChild() ile kullanmayın. 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) mod
  • Windows çalışma zamanı ortamı: Çok iş parçacıklı / MT - Çok iş parçacıklı DLL /MD
  • Hedef: Sürüm ve Hata Ayıklama

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

Windows'da C++ masaüstü uygulamaları oluştururken aşağıdaki Windows SDK'sını bağlayın kullanabilirsiniz. Daha fazla bilgi için derleyici dokümanlarınıza bakın. ekleyebilirsiniz.

Firebase C++ Kitaplığı Windows SDK kitaplığı bağımlılıkları
App Check advapi32, ws2_32, crypt32
Authentication advapi32, ws2_32, crypt32
Cloud Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Cloud Functions advapi32, ws2_32, crypt32, rpcrt4, ole32
Cloud Storage advapi32, ws2_32, crypt32
Realtime Database advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Remote Config advapi32, ws2_32, crypt32, rpcrt4, ole32

macOS kitaplıkları

MacOS (Darwin) için, 64 bit (x86_64) için kitaplık sürümleri sağlanır platformu. Size kolaylık sağlamak için çerçeveler de sunulur.

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

macOS'te C++ masaüstü uygulamaları oluştururken aşağıdakini 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 dokümanlarınıza bakın.

Linux kitaplıkları

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

Linux kitaplıklarının GCC 4.8.0, GCC 7.2.0 ve Ubuntu'da Clang 5.0.

Linux'ta C++ masaüstü uygulamaları oluştururken pthread sistem kitaplığını şuraya bağlayın: akılda kalıcı bir yolunu sunar. Daha fazla bilgi için derleyici dokümanlarınıza bakın. Eğer GCC 5 veya sonraki bir sürümle derlerseniz -D_GLIBCXX_USE_CXX11_ABI=0 değerini tanımlayın.

Sonraki adımlar