Firebase SDK'larının üzerinde bir C++ arayüzü sağlayan Firebase C++ SDK'larımızla C++ oyunlarınızı güçlendirin.
Platforma özgü kod yazmak zorunda kalmadan Firebase'e tamamen C++ kodunuzdan erişebilirsiniz. Firebase SDK'sı, Firebase tarafından kullanılan dile özgü birçok deyimi C++ geliştiricilerinin daha aşina olduğu bir arayüze de çevirir.
Firebase ile oyunlarınızı güçlendirme hakkında daha fazla bilgi edinmek için Firebase oyunlar sayfamızı ziyaret edin.
Firebase'i C++ projenize zaten 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'sını edinin.
Projenizin şu koşulları karşıladığından emin olun:
API düzeyi 24 (Nougat) 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 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 inceleyin.
Google Hesabınızı kullanarak Firebase'de oturum açın.
2. adım: Firebase projesi oluşturun
Firebase'i C++ projenize ekleyebilmek 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 sayfasını ziyaret edin.
3. adım: Uygulamanızı Firebase'e kaydetme
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.
Android paket adı alanına uygulamanızın paket adını girin.
(İsteğe bağlı) Uygulama takma adı girin. Bu, yalnızca Firebase konsolunda görebileceğiniz dahili ve kolaylık sağlayan bir tanımlayıcıdır.
Uygulamayı kaydet'i tıklayın.
4. adım: Firebase yapılandırma dosyasını ekleyin
Firebase Android yapılandırma dosyanızı almak 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.gradledosyanızla aynı dizine ekleyin.Diğer derleme sistemleri: Android dize kaynakları 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 üst düzey
build.gradledosyanıza Google hizmetleri Gradle eklentisini ekleyin.Google hizmetleri Gradle eklentisini dahil etmek için 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.5.0' // Google services Gradle plugin implementation 'com.google.android.gms:18.11.1' } } 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 Gradle plugin android { // ... }
Firebase konsolundaki 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 nasıl ekleyeceğinizi gösteren bir örnektir.
Firebase C++ SDK'sını indirin ve uygun bir yere açın.
Firebase C++ SDK'sı platforma özel değildir ancak platforma özel kitaplıklar içerir.
Projenizin
gradle.propertiesdosyasında, sıkıştırılmış dosyası açılan SDK'nın konumunu belirtin:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Projenizin
settings.gradledosyası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ünüzün (uygulama düzeyinde) Gradle dosyasına (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 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 }
Projenizin
CMakeLists.txtdosyasına aşağıdaki içeriği ekleyin.
Uygulamanızda kullanmak istediğiniz Firebase ürünlerinin kitaplıklarını 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}")
Tüm bağımlılıkların gerekli sürümlere sahip olduğundan emin olmak için uygulamanızı senkronize edin.
Analytics 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ü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.
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 dokümanlarında ve GitHub'daki açık kaynak SDK sürümümüzde bulabilirsiniz.
Android için kullanılabilir kitaplıklar (CMake kullanan)
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.dependenciesbuild.gradle dosyası için) |
Kitaplık referansları ( firebase_libsCMakeLists.txt dosyası için) |
|---|---|---|
| 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(önerilen) firebase_analytics(zorunlu) firebase_app
|
| Cloud Storage | storage |
firebase_storage(zorunlu) firebase_app
|
| Realtime Database | database |
firebase_database(zorunlu) firebase_app
|
| Remote Config | remoteConfig |
firebase_remote_config(önerilen) firebase_analytics(zorunlu) firebase_app
|
| DESTEĞİ SONLANDIRILMIŞ VEYA DESTEKLENMEYEN KİTAPLIKLAR | ||
| Dynamic Links | dynamicLinks |
firebase_dynamic_links(önerilen) firebase_analytics(zorunlu) firebase_app
|
Mobil kurulumla ilgili ek bilgiler
NDK kilitlenme raporlarını alma
Firebase Crashlytics, Android yerel kitaplıklarını kullanan uygulamalar için Crash Reporting'i destekler. Daha fazla bilgi edinmek için Android NDK kilitlenme raporlarını alma başlıklı makaleyi inceleyin.
Özel derleme sistemleri
Firebase, google-services.json kaynaklarını 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ı, Android uygulamaları oluştururken Google Play Hizmetleri Gradle eklentisinin gerçekleştirdiği dönüşümün aynısını uygular.
Gradle kullanarak derleme yapmıyorsanız (ör. ndk-build, makefiles, Visual Studio vb. kullanıyorsanı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 Sürüm modundaki derlemelerde 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 dizinine 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 döndürürse Google Play Hizmetleri, istemci cihazda kullanılamıyor demektir (yani güncellenmesi, yeniden etkinleştirilmesi, izinlerin düzeltilmesi vb. gerekir). İstemci cihazdaki durum düzeltilene kadar Firebase kitaplığı kullanılamaz.
google_play_services/availability.h içindeki işlevleri kullanarak Google Play Hizmetleri'nin istemci cihazda neden kullanılamadığını öğrenebilir (ve sorunu düzeltmeye çalışabilirsiniz).
Aşağıdaki tabloda, desteklenen her Firebase ürünü için istemci cihazda Google Play Hizmetleri'nin gerekli olup olmadığı listelenmiştir.
| Firebase C++ Kitaplığı | İstemci cihazda Google Play Hizmetleri gerekli mi? |
|---|---|
| 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 |
Masaüstü iş akışı oluşturma (beta)
Oyun oluştururken genellikle oyununuzu önce masaüstü platformlarda test etmek, ardından geliştirme sürecinin ilerleyen aşamalarında mobil cihazlara dağıtıp test etmek ç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.jsondosyasını eklediyseniz: Uygulamanızı çalıştırdığınızda Firebase bu mobil dosyayı bulur ve otomatik olarak bir masaüstü Firebase yapılandırma dosyası (google-services-desktop.json) oluşturur.iOS
GoogleService-Info.plistdosyasını eklediyseniz: Uygulamanızı çalıştırmadan önce bu mobil dosyasını masaüstü Firebase yapılandırma dosyasına dönüştürmeniz gerekir. Dosyayı dönüştürmek içinGoogleService-Info.plistdosyanı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 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.
C++ projenize Firebase SDK'ları ekleyin.
Aşağıdaki adımlarda, desteklenen Firebase ürünlerini C++ projenize nasıl ekleyeceğiniz örnek olarak gösterilmektedir. Bu örnekte, Firebase Authentication ve Firebase Realtime Database ekleme adımlarını inceleyeceğiz.
FIREBASE_CPP_SDK_DIRortam değişkeninizi, sıkıştırılmış dosyası açılmış Firebase C++ SDK'sının konumuna ayarlayın.Projenizin
CMakeLists.txtdosyası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'yi 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ı, bir dizi özellik için masaüstü iş akışı desteği içerir. Bu sayede Firebase'in belirli bölümleri Windows, macOS ve Linux'taki bağımsız masaüstü derlemelerinde kullanılabilir.
| Firebase ürünü | Kitaplık referansları (CMake kullanarak) |
|---|---|
| App Check |
firebase_app_check(zorunlu) firebase_app
|
| Authentication |
firebase_auth(zorunlu) firebase_app
|
| Cloud Firestore |
firebase_firestorefirebase_authfirebase_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 derleme yaparken kolaylık sağlamak amacıyla kalan masaüstü kitaplıklarını taslak (işlevsel olmayan) uygulamalar olarak sağlar. 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 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) 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: 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 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ı |
|---|---|
| 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 kitaplık sürümleri 64 bit (x86_64) platformu için sağlanır. Size kolaylık sağlamak için çerçeveler de sağlanmıştır.
macOS kitaplıklarının Xcode 26.2 kullanılarak test edildiğini unutmayın.
macOS'te C++ masaüstü uygulamaları oluştururken projenize aşağıdakileri bağlayın:
pthreadsistem kitaplığıCoreFoundationmacOS sistem çerçevesiFoundationmacOS sistem çerçevesiSecuritymacOS sistem çerçevesiGSSmacOS sistem çerçevesiKerberosmacOS sistem çerçevesiSystemConfigurationmacOS sistem çerçevesi
Daha fazla bilgi için derleyici belgelerinize bakın.
Linux kitaplıkları
Linux için kitaplık sürümleri 32 bit (i386) ve 64 bit (x86_64) platformlar için 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 değerini tanımlayın.
Sonraki adımlar
Örnek Firebase uygulamalarını inceleyin.
GitHub'daki açık kaynak SDK'yı inceleyin.
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 fikir edinmek için Firebase konsolundaki Kullanım ve faturalandırma kontrol panelini izleyin.
- Firebase lansman yapılacaklar listesini inceleyin.