Firebase SDK'larının üzerinde C++ arayüzü sağlayan Firebase C++ SDK'larımızla C++ oyunlarınıza güç katın.
Platforma özgü kod yazmanıza gerek kalmadan Firebase'e tamamen C++ kodunuzdan erişin. Firebase SDK, Firebase tarafından kullanılan dile özgü birçok deyimi de C++ geliştiricilerinin daha aşina olduğu bir arayüze çevirir.
Oyunlarınıza Firebase ile güç katma hakkında daha fazla bilgi edinmek için Firebase oyunları sayfamızı ziyaret edin.
Firebase'i C++ projenize eklediniz mi? Firebase C++ SDK'sının en yeni sürümünü kullandığınızdan emin olun.
Ön koşullar
Android Studio, IntelliJ veya VS Code gibi tercih ettiğiniz düzenleyiciyi ya da IDE'yi yükleyin.
Android SDK'yı edinin.
Projenizin aşağıdaki koşulları karşıladığından emin olun:
API düzeyi 21 (Lollipop) veya üstünü hedeflemelidir.
Gradle kullanır ve CMake ile yapılandırılır
Uygulamanızı çalıştırmak için fiziksel bir cihaz kurun veya emülatör kullanın.
Emülatörler Google Play'in bulunduğu bir emülatör resmi kullanmalıdır.
Bazı C++ kitaplıkları için istemci cihazda Google Play Hizmetleri'nin yüklü olması gerekir. Bu sayfadaki listeyi inceleyin.
Google Hesabınızı kullanarak Firebase'de oturum açın.
2. adım: Firebase projesi oluşturun
Firebase'i C++ projenize ekleyebilmeniz için C++ projenize bağlanacak bir Firebase projesi oluşturmanız gerekir. Firebase projeleri hakkında daha fazla bilgi edinmek için Firebase projelerini anlama başlıklı makaleyi inceleyin.
3. adım: Uygulamanızı Firebase'e kaydedin
Android uygulamanızda Firebase'i kullanmak için uygulamanızı Firebase projenize kaydetmeniz gerekir. Uygulamanızı kaydetme işlemi genellikle uygulamanızı projenize "ekleme" olarak adlandırılır.
Firebase konsoluna gidin.
Kurulum iş akışını başlatmak için projeye genel bakış sayfasının ortasındaki Android simgesini (
) veya Uygulama ekle'yi tıklayın.Uygulamanızın paket adını Android paket adı alanına girin.
(İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve Hata ayıklama imzalama sertifikası SHA-1.
Uygulamayı kaydet'i tıklayın.
4. adım: Firebase yapılandırma dosyasını ekleyin
Firebase Android yapılandırma dosyanızı edinmek için google-services.json dosyasını indir'i tıklayın.
C++ projenizi bir IDE'de açın, ardından yapılandırma dosyanızı projenize ekleyin:
Gradle derlemeleri: Yapılandırma dosyanızı üst düzey
build.gradle
dosyanızla aynı dizine ekleyin.Diğer derleme sistemleri: Android String Resources oluşturmak için aşağıdaki Özel derleme sistemleri bölümüne bakın.
(Yalnızca Gradle derlemeleri) C++ projenizde Firebase hizmetlerini etkinleştirmek için google-services eklentisini en üst düzeydeki
build.gradle
dosyanıza ekleyin.Google Hizmetleri Gradle eklentisini içerecek kurallar ekleyin. Google'ın Maven deposuna da sahip olduğunuzdan emin olun.
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.3' // Google Services plugin implementation 'com.google.android.gms:18.7.2' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
Google Hizmetleri Gradle eklentisini uygulayın:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Firebase konsolunda kurulum görevlerini tamamladınız. Aşağıdaki Firebase C++ SDK'larını ekleme bölümüne geçin.
5. adım: Firebase C++ SDK'larını ekleyin
Bu bölümdeki adımlar, desteklenen Firebase ürünlerini Firebase C++ projenize ekleme örneğidir.
Firebase C++ SDK'sını indirin ve SDK'yı uygun bir konumda arşivden çıkarın.
Firebase C++ SDK'sı platforma özgü değildir ancak platforma özgü kitaplıklar içerir.
Projenizin
gradle.properties
dosyasında, sıkıştırılmamış SDK'nın konumunu belirtin:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
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"
Modül (uygulama düzeyi) Gradle dosyanıza (genellikle
app/build.gradle
) aşağıdaki içeriği ekleyin.
Uygulamanızda kullanmak istediğiniz Firebase ürünleri için kitaplık bağımlılıklarını ekleyin.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 }
Projenizin
CMakeLists.txt
dosyasına aşağıdaki içeriği ekleyin.
Uygulamanızda kullanmak istediğiniz Firebase ürünlerinin kitaplıklarını ekleyin.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}")
Tüm bağımlılarda gerekli sürümlerin bulunduğundan emin olmak için uygulamanızı senkronize edin.
Analytics eklediyseniz Firebase'e Firebase'i başarıyla entegre ettiğinizi doğrulayan bir mesaj göndermek için uygulamanızı çalıştırın. Aksi takdirde doğrulama adımını atlayabilirsiniz.
Cihaz günlüklerinizde, başlatma işleminin tamamlandığına dair Firebase doğrulaması gösterilir. 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ı bildirir.
Artık hazırsınız. C++ uygulamanız, Firebase hizmetlerini kullanacak şekilde kaydedilmiş ve yapılandırılmış olmalıdır.
Kullanılabilen kitaplıklar
C++ Firebase kitaplıkları hakkında daha fazla bilgiyi referans belgelerinde ve GitHub'daki açık kaynak SDK sürümümüzde bulabilirsiniz.
Android için kullanılabilen kitaplıklar (CMake kullanılarak)
Apple platformları için C++ kitaplıklarının bu kurulum sayfasının Apple platformları (iOS+) sürümünde listelendiğini unutmayın.
Firebase ürünü | Kitaplık referansları ( firebaseCpp.dependencies for build.gradle dosyası için) |
Kitaplık referansları ( firebase_libs for CMakeLists.txt dosyası için) |
---|---|---|
AdMob | admob |
firebase_admob (zorunlu) firebase_analytics (zorunlu) firebase_app
|
Analytics | analytics |
firebase_analytics (zorunlu) firebase_app
|
App Check | appCheck |
firebase_app_check (zorunlu) firebase_app
|
Authentication | auth |
firebase_auth (zorunlu) firebase_app
|
Cloud Firestore | firestore |
firebase_firestore (zorunlu) firebase_auth (zorunlu) firebase_app
|
Cloud Functions | functions |
firebase_functions (zorunlu) firebase_app
|
Cloud Messaging | messaging |
firebase_messaging (önerilir) firebase_analytics (zorunlu) firebase_app
|
Cloud Storage | storage |
firebase_storage (zorunlu) firebase_app
|
Dynamic Links | dynamicLinks |
firebase_dynamic_links (önerilir) firebase_analytics (zorunlu) firebase_app
|
Realtime Database | database |
firebase_database (zorunlu) firebase_app
|
Remote Config | remoteConfig |
firebase_remote_config (önerilir) firebase_analytics (zorunlu) firebase_app
|
Mobil kurulum hakkında ek bilgiler
NDK kilitlenme raporlarını alma
Firebase Crashlytics, Android yerel kitaplıklarını kullanan uygulamalar için kilitlenme raporlamasını destekler. Daha fazla bilgi edinmek için Android NDK kilitlenme raporlarını alma başlıklı makaleyi inceleyin.
Özel derleme sistemleri
Firebase, projenize ekleyebileceğiniz google-services.json
kaynaklarını .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ün aynısını uygular.
Gradle kullanarak derleme yapmıyorsanız (örneğin, ndk-build, makefile'lar, Visual Studio vb. kullanıyorsanız) Android String Kaynakları oluşturma işlemini 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 modundaki derlemelerde ProGuard'ı kullanır.
ProGuard kullanıyorsanız libs/android/*.pro
ProGuard yapılandırmanızda kullandığınız Firebase C++ kitaplıklarına karşılık gelen dosyaları
eklemeniz gerekir.
Örneğin, Gradle ile Google Analytics kullanıyorsanız build.gradle
dosyanız şu şekilde 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ığı, istemcinin Android cihazında Google Play Hizmetleri'nin bulunmasını gerektirir. Bir Firebase C++ kitaplığı başlatma sırasında
kInitResultFailedMissingDependency
değerini döndürüyorsa Google Play Hizmetleri'nin istemci cihazda kullanılamadığı (güncellenmesi, yeniden etkinleştirilmesi, izinlerin düzeltilmesi vb. gerektiği) anlamına gelir. İstemci cihazdaki durum düzeltilene kadar Firebase kitaplığı kullanılamaz.
Google Play Hizmetleri'nin neden istemci cihazda kullanılamadığını google_play_services/availability.h
bölümündeki işlevleri kullanarak öğrenebilir (ve sorunu düzeltmeyi deneyebilirsiniz).
Aşağıdaki tabloda, desteklenen her Firebase ürünü için Google Play Hizmetleri'nin istemci cihazda gerekli olup olmadığı listelenmektedir.
Firebase C++ Kitaplığı | İstemci cihazda Google Play Hizmetleri gerekli mi? |
---|---|
AdMob | Gerekli 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
Google Mobile AdsAndroid için SDK'nın çoğu sürümü, istemci cihazda Google Play Hizmetleri olmadan düzgün şekilde ç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 başlatma işlemi yalnızca aşağıdaki koşulların her ikisi de geçerliyse kInitResultFailedMissingDependency
değerini döndürür:
- 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 oluştururken oyununuzu önce masaüstü platformlarda test etmek, ardından geliştirme sürecinin ilerleyen aşamalarında mobil cihazlarda dağıtıp test etmek genellikle çok daha kolaydır. Bu iş akışını desteklemek için Windows, macOS, Linux ve C++ düzenleyicisinde çalıştırılabilen Firebase C++ SDK'larının bir alt kümesini sunuyoruz.
Masaüstü iş akışları için aşağıdakileri tamamlamanız gerekir:
- C++ projenizi CMake için yapılandırın.
- Firebase projesi oluşturma
- Uygulamanızı (iOS veya Android) Firebase'e kaydetme
- Mobil platform Firebase yapılandırma dosyası ekleme
Firebase yapılandırma dosyasının 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.iOS
GoogleService-Info.plist
dosyasını eklediyseniz: Uygulamanızı çalıştırmadan önce bu mobil dosyayı masaüstü Firebase yapılandırma dosyasına dönüştürmeniz gerekir. Dosyayı dönüştürmek içinGoogleService-Info.plist
dosyanızla aynı dizinden 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 konsol kurulumu iş akışında girdiğiniz C++ proje kimliğini içerir. Yapılandırma dosyaları hakkında daha fazla bilgi edinmek için Firebase projelerini anlama başlıklı makaleyi inceleyin.
Firebase SDK'larını C++ projenize ekleyin.
Aşağıdaki adımlar, desteklenen herhangi bir Firebase ürününü C++ projenize nasıl ekleyeceğinize dair bir örnek olarak verilmiştir. Bu örnekte, Firebase Authentication ve Firebase Realtime Database ekleme adımları açıklanmaktadır.
FIREBASE_CPP_SDK_DIR
ortam değişkeninizi, sıkıştırılmamış Firebase C++ SDK'sının konumuna ayarlayın.Projenizin
CMakeLists.txt
dosyasına, kullanmak istediğiniz Firebase ürünlerinin kitaplıkları da 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}")
C++ uygulamanızı çalıştırın.
Kullanılabilir kitaplıklar (masaüstü)
Firebase C++ SDK'sı, özelliklerin bir alt kümesi için masaüstü iş akışı desteği içerir. Bu sayede, Firebase'in belirli bölümleri Windows, macOS ve Linux'ta bağımsız masaüstü derlemelerinde kullanılabilir.
Firebase ürünü | Kitaplık referansları (CMake kullanılarak) |
---|---|
App Check |
firebase_app_check (zorunlu) firebase_app
|
Authentication |
firebase_auth (zorunlu) firebase_app
|
Cloud Firestore |
firebase_firestore firebase_auth firebase_app
|
Cloud Functions |
firebase_functions (zorunlu) firebase_app
|
Cloud Storage |
firebase_storage (zorunlu) firebase_app
|
Realtime Database |
firebase_database (zorunlu) firebase_app
|
Remote Config |
firebase_remote_config (zorunlu) firebase_app
|
Firebase, Windows, macOS ve Linux için geliştirme yaparken kolaylık sağlamak amacıyla kalan masaüstü kitaplıklarını stub (işlevsel olmayan) uygulamalar olarak sunar. 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'i kullanır. Bu nedenle, masaüstünde Query::OrderByChild()
ile kullandığınız dizinleri beyan etmeniz gerekir. Aksi takdirde dinleyicileriniz başarısız olur.
Masaüstü kurulumuyla ilgili 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) ve 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 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 kitaplıklarını projenize bağlayın. Daha fazla bilgi için derleyici belgelerinize bakın.
Firebase C++ Kitaplığı | Windows SDK kitaplık 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) platformunda kitaplık sürümleri sağlanır. Size kolaylık sağlamak için çerçeveler de sunulur.
macOS kitaplıklarının Xcode 16.2 kullanılarak test edildiğini unutmayın.
macOS'te C++ masaüstü uygulamaları oluştururken projenize aşağıdakileri bağlayın:
pthread
sistem kitaplığıCoreFoundation
macOS sistem çerçevesiFoundation
macOS sistem çerçevesiSecurity
macOS sistem çerçevesiGSS
macOS sistem çerçevesiKerberos
macOS sistem çerçevesiSystemConfiguration
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) platformlarda 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'ta C++ masaüstü uygulamaları oluştururken pthread
sistem kitaplığını projenize bağlayın. Daha fazla bilgi için derleyici belgelerinize bakın. GCC 5 veya sonraki bir sürümle derleme yapıyorsanız -D_GLIBCXX_USE_CXX11_ABI=0
öğesini tanımlayın.
Sonraki adımlar
Örnek Firebase uygulamalarını inceleyin.
GitHub'daki açık kaynak SDK'yı keşfedin.
Uygulamanızı kullanıma sunmaya hazırlanma:
- Google Cloud konsolunda projeniz için bütçe uyarıları ayarlayın.
- Projenizin birden fazla Firebase hizmetindeki kullanımına dair genel bir görünüm elde etmek için Firebase konsolundaki Kullanım ve faturalandırma kontrol panelini izleyin.
- Firebase lansman kontrol listesini inceleyin.