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.
Firebase oyunlar sayfamızda oyunlarınızı Firebase ile güçlendirme hakkında daha fazla bilgi edinin.
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'sını edinin.
Projenizin şu gereksinimleri karşıladığından emin olun:
API seviyesi 19 (KitKat) veya üzerini hedefler
Gradle kullanır ve CMake ile yapılandırılmıştır
Uygulamanızı çalıştırmak için fiziksel bir cihaz kurun veya bir öykünücü kullanın.
Emülatörler , Google Play ile bir emülatör resmi 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 : 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 Anlayın sayfası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.
Firebase konsoluna gidin.
Projeye genel bakış sayfasının ortasında, kurulum iş akışını başlatmak için Android simgesine (
) veya Uygulama ekle'ye tıklayın.Android paket adı alanına uygulamanızın paket adını girin.
Bir paket adı , uygulamanızı cihazda ve Google Play Store'da benzersiz bir şekilde tanımlar.
Bir paket adına genellikle uygulama kimliği denir.
Uygulamanızın paket adını modülünüzde (uygulama düzeyi) Gradle dosyanızda bulun, genellikle
app/build.gradle
(örnek paket adı:com.yourcompany.yourproject
).Paket adı değerinin büyük/küçük harf duyarlı olduğunu ve Firebase projenize kaydolduktan sonra bu Firebase Android uygulaması için değiştirilemeyeceğini unutmayın.
(İsteğe bağlı) Diğer uygulama bilgilerini girin: Uygulama takma adı ve Hata ayıklama imzalama sertifikası SHA-1 .
Uygulama takma adı : Yalnızca Firebase konsolunda görebileceğiniz dahili, kullanışlı bir tanımlayıcı
Hata ayıklama imzalama sertifikası SHA-1 : Firebase Authentication ( Google ile Oturum Açma veya telefon numarasıyla oturum açma kullanılırken ) ve Firebase Dynamic Links için bir SHA-1 karması gerekir.
Uygulamayı kaydet'i tıklayın.
Adım 4 : Firebase yapılandırma dosyasını ekleyin
Firebase Android yapılandırma dosyanızı almak için google-services.json'u İndir'i tıklayın.
Firebase yapılandırma dosyası, projeniz için benzersiz, ancak gizli olmayan tanımlayıcılar içerir. Bu yapılandırma dosyası hakkında daha fazla bilgi edinmek için Firebase Projelerini Anlayın sayfasını ziyaret edin.
Firebase yapılandırma dosyanızı istediğiniz zaman yeniden indirebilirsiniz.
Yapılandırma dosyası adının sonuna
(2)
gibi ek karakterler eklenmediğinden emin olun.
C++ projenizi bir IDE'de açın, ardından yapılandırma dosyanızı projenize ekleyin:
Gradle builds — Yapılandırma dosyanızı, üst düzey
build.gradle
dosyanızla aynı dizine ekleyin.Diğer derleme sistemleri — Android Dize Kaynakları oluşturmak için aşağıdaki Özel derleme sistemlerine bakın.
(Yalnızca Gradle derlemeleri) C++ projenizde Firebase hizmetlerini etkinleştirmek için google-services eklentisini üst düzey
build.gradle
dosyanıza ekleyin.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.13' // Google Services plugin implementation 'com.google.android.gms:18.1.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
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 { // ... }
Firebase konsolunda kurulum görevlerini tamamladınız. Aşağıdaki Firebase C++ SDK'larını Eklemeye devam edin.
Adım 5 : Firebase C++ SDK'larını ekleyin
Bu bölümdeki adımlar, Firebase C++ projenize desteklenen Firebase ürünlerini nasıl ekleyeceğinizi gösteren bir örnektir.
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.
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ünüze (app-level) 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 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.txt
dosyasına aşağıdaki içeriği ekleyin.
Uygulamanızda kullanmak istediğiniz Firebase ürünlerine ait kitaplıkları 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'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. Uygulamanızı ağ erişimi olan bir öykünücüde çalıştırdıysanız, Firebase konsolu , uygulama bağlantınızın tamamlandığını size bildirir.
Hazırsınız! C++ uygulamanız kayıtlı ve Firebase hizmetlerini kullanacak şekilde yapılandırılmış.
Kullanılabilir kitaplıklar
Başvuru 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)
iOS için C++ kitaplıklarının bu kurulum sayfasının iOS sürümünde listelendiğini unutmayın.
Firebase ürünü | Kütüphane referansları ( firebaseCpp.dependencies build.gradle dosyası için) | Kütüphane referansları ( firebase_libs CMakeLists.txt dosyası için) |
---|---|---|
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 | 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 edinmek için Android NDK kilitlenme raporlarını alma konusuna bakın.
Özel yapım sistemleri
Firebase, google-services.json
projenize dahil edebileceğ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ün aynısını uygular.
Gradle kullanarak derleme yapmıyorsanız (örneğin, ndk-build, makefiles, Visual Studio vb. kullanıyorsanız), Android String Resources 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 Sürüm modundaki 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
içine eklemeniz gerekir.
Örneğin, Google Analytics kullanıyorsanız, Gradle ile 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 gereksinimi
Çoğu Firebase C++ kitaplığı, Google Play hizmetlerinin müşterinin Android cihazında olmasını gerektirir. Bir Firebase C++ kitaplığı başlatma sırasında kInitResultFailedMissingDependency
döndürürse, bu, Google Play hizmetlerinin istemci cihazda mevcut olmadığı anlamına gelir (yani güncellenmesi, yeniden etkinleştirilmesi, izinlerin düzeltilmesi vb.). Firebase kitaplığı, istemci cihazdaki durum düzeltilinceye kadar kullanılamaz.
google_play_services/availability.h
içindeki işlevleri kullanarak, istemci cihazda Google Play hizmetlerinin neden kullanılamadığını öğrenebilir (ve düzeltmeye çalışabilirsiniz).
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. 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, yalnızca aşağıdakilerin 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
kullanıyorsunuz.
Bir masaüstü iş akışı kurun ( beta )
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 Windows, macOS, Linux ve C++ düzenleyicisinin içinden çalışabilen bir Firebase C++ SDK alt kümesi sağlıyoruz.
Masaüstü iş akışları için aşağıdakileri tamamlamanız gerekir:
- C++ projenizi CMake için yapılandırın.
- Bir Firebase projesi oluşturun
- Uygulamanızı (iOS veya Android) Firebase'e kaydedin
- Bir mobil platform Firebase yapılandırma dosyası ekleyin
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.iOS
GoogleService-Info.plist
dosyasını eklediyseniz — 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ı 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 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 Anlayın sayfasını ziyaret edin.
C++ projenize Firebase SDK'ları 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 ekleyerek ilerliyoruz.
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ünleri için kitaplıklar dahil olmak üzere aşağıdaki içeriği ekleyin. Ö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}")
C++ uygulamanızı çalıştırın.
Kullanılabilir kitaplıklar (masaüstü)
Firebase C++ SDK, bir dizi özellik 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ü yapılarında kullanılmasına olanak tanır.
Firebase ürünü | Kitaplık referansları (CMake kullanarak) |
---|---|
kimlik doğrulama | firebase_auth (gerekli) firebase_app |
Bulut Firestore | 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ü
Masaüstü için Realtime Database SDK, veritabanınıza erişmek için REST 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 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 13.3.1 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, 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
tanımlayın.
Sonraki adımlar
Örnek Firebase uygulamalarını keşfedin.
GitHub'da açık kaynak SDK'yı keşfedin.
Uygulamanızı başlatmaya hazırlanın:
- Google Cloud Console'da projeniz için bütçe uyarıları ayarlayın.
- Projenizin birden fazla Firebase hizmetinde kullanımının genel bir resmini elde etmek için Firebase konsolundaki Kullanım ve faturalandırma panosunu izleyin.
- Firebase başlatma kontrol listesini inceleyin.