Firebase SDK'larının ü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 zaten C++ projenize 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:
API seviyesi 19 (KitKat) veya üstünü 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 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 .
Adım 2 : Bir Firebase projesi oluşturun
Firebase'i C++ projenize ekleyebilmeniz için önce C++ projenize bağlanmak üzere 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ı kaydettirmek genellikle uygulamanızı projenize "eklemek" 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.
Paket adı, uygulamanızı cihazda ve Google Play Store'da benzersiz şekilde tanımlar.
Bir paket adına genellikle uygulama kimliği denir.
Uygulamanızın paket adını modül (uygulama düzeyinde) Gradle dosyanızda bulun, genellikle
app/build.gradle
(örnek paket adı:com.yourcompany.yourproject
).Paket adı değerinin büyük/küçük harfe duyarlı olduğunu ve Firebase projenize kaydedildikten 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ı : Firebase konsolunda yalnızca sizin görebileceğiniz dahili, kullanışlı bir tanımlayıcı
SHA-1 imzalama sertifikasında hata ayıklama: Firebase Kimlik Doğrulaması ( Google ile Oturum Açma veya telefon numarasıyla oturum açma kullanılırken) ve Firebase Dynamic Links tarafından 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ı edinmek için google-services.json'u indir'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 Anlama sayfasını ziyaret edin.
Firebase yapılandırma dosyanızı istediğiniz zaman tekrar 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 derlemeleri — Yapılandırma dosyanızı en ü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 sistemlerine bakın.
(Yalnızca Gradle derlemeleri) C++ projenizde Firebase hizmetlerini etkinleştirmek için google-services eklentisini en üst düzey
build.gradle
dosyanıza ekleyin.Google Services Gradle eklentisini dahil etmek için kurallar ekleyin. Google'ın Maven deposuna da sahip olup olmadığınızı 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.15' // Google Services plugin implementation 'com.google.android.gms:18.2.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'lerini Ekleme ile devam edin.
5. Adım : Firebase C++ SDK'ları ekleyin
Bu bölümdeki adımlar, desteklenen Firebase ürünlerini Firebase C++ projenize nasıl ekleyeceğinize bir örnektir.
Firebase C++ SDK'yı indirin, ardından SDK'yı uygun bir yere sıkıştırın.
Firebase C++ SDK, platforma özgü değildir ancak platforma özgü kitaplıklar içerir.
Projenizin
gradle.properties
dosyasında sıkıştırılmış 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üzeyinde) 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ı dahil edin.Analitik 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 }
Analitik etkin değil
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ünleri için kitaplıkları ekleyin.Analitik 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}")
Analitik etkin değil
# 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ığını gösteren 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 kaydedildi ve Firebase hizmetlerini kullanacak şekilde yapılandırıldı.
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 kullanılabilir kitaplıklar (CMake kullanarak)
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ü | 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 |
Uygulama Kontrolü | appCheck | firebase_app_check (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 (önerilen) 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 bölümüne bakın.
Özel yapı 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şturmayı otomatikleştirmek için bu betiği kullanabilirsiniz.
ProGuard
Birçok Android derleme sistemi, uygulama boyutlarını küçültmek ve Java kaynak kodunu korumak için Yayın 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
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 bulunmadığı anlamına gelir (yani güncellenmesi, yeniden etkinleştirilmesi, izinlerin düzeltilmesi vb. gerekir). İstemci cihazdaki durum düzeltilene kadar Firebase kitaplığı kullanılamaz.
Google Play hizmetlerinin neden istemci cihazda bulunmadığını google_play_services/availability.h
adresindeki işlevleri kullanarak öğrenebilir (ve düzeltmeye çalışabilirsiniz).
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 |
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: com.google.firebase:firebase-ads
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 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
kullanıyorsunuz.
Bir masaüstü iş akışı kurun ( beta )
Bir oyun oluştururken, oyununuzu önce masaüstü platformlarda 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 üzerinde ve C++ düzenleyici içinden çalışabilen Firebase C++ SDK'lerinin bir alt kümesini 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ç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 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ü C++ projenize nasıl ekleyeceğiniz konusunda örnek niteliğindedir. Bu örnekte, Firebase Authentication ve Firebase Realtime Database ekleme adımlarını inceleyeceğiz.
FIREBASE_CPP_SDK_DIR
ortam değişkeninizi sıkıştırılmış Firebase C++ SDK'nın konumuna ayarlayın.Projenizin
CMakeLists.txt
dosyasına, kullanmak istediğiniz Firebase ürünlerine ait kitaplıklar da 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ını sağlar.
Firebase ürünü | Kitaplık referansları (CMake kullanılarak) |
---|---|
Uygulama Kontrolü | firebase_app_check (gerekli) firebase_app |
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 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 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 göre sağlanır:
- Derleme platformu: 32 bit (x86) ve 64 bit (x64) modu
- Windows çalışma zamanı ortamı: Multithreaded / MT vs Multithreaded 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'ta 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ı |
---|---|
Uygulama Kontrolü | advapi32, ws2_32, crypt32 |
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'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 kütüphaneleri
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'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 sonraki sürümlerle oluşturuyorsanı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.
- Birden fazla Firebase hizmetinde projenizin kullanımının genel bir resmini elde etmek için Firebase konsolundaki Kullanım ve faturalandırma kontrol panelini izleyin.
- Firebase başlatma kontrol listesini inceleyin.